From b0b2caa90ec68ac1ab184d63fb5319f17ac32ca0 Mon Sep 17 00:00:00 2001 From: 7840HS_LapTop <7840HS_LapTop@serversalem.top> Date: Wed, 16 Sep 2026 20:11:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E6=8F=90=E4=BA=A4=EF=BC=9A?= =?UTF-8?q?=E9=A1=BA=E5=BA=8F=E8=A1=A8=E7=BB=93=E6=9E=84=E4=BD=93=E3=80=81?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E4=B8=8E=E5=B0=BE=E9=83=A8=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 9 +++++++ 1.c | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ CLAUDE.md | 27 ++++++++++++++++++++ 3 files changed, 108 insertions(+) create mode 100644 .gitignore create mode 100644 1.c create mode 100644 CLAUDE.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8ed9af8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +# 编译产物 +*.o +*.obj +*.exe +*.out +build/ + +# 编辑器配置(含本机路径,不上传) +.vscode/ diff --git a/1.c b/1.c new file mode 100644 index 0000000..8831b67 --- /dev/null +++ b/1.c @@ -0,0 +1,72 @@ +#include +#include +#include + +typedef struct { +int max; //列表最大长度 +int length; //列表现在的长度 +int *start; //内存地址起始位置 +int front; //列表起始索引 +int end; //列表结束索引 + +}queue; + + +int main(){ +queue q; +printf("输入整个列表长度"); +int length; +scanf("%d",&length); +int b; +printf("接下来依次输入放进列表的东西"); +for (int i = 0; i < length; i++) +{ + /* code */ +scanf("%d",&b); + + +} + + + + + + + return 0; +} + +int q_init(queue *q,int length){ //就是普通的初始化。要给他什么参数呢?首先就是queue的地址,然后是一个初始长度。然后初始化全0就行了。 +q->start=malloc(length*sizeof(int)); +q->max=length; +q->front=0; +q->end=0; +q->max=0; + + return 0; +} + + +int q_add(queue *q,int num){ //最后边加上元素 +if(q->length==q->max){ //容量不够了的自动扩容 + q->max+=5; + q->start=realloc(q->start,q->max*sizeof(int)); +} +q->start[q->end]=num; +q->end++; +q->length++; +} + +int q_addpro(){ //任意地方加上元素,要进去一个索引编号和数值 + + +} + +int q_reduce(){ //最前面拿走元素 + + +} + +int q_reducepro(){ //任意地方拿走元素,也是索引号+数值 + + +} \ No newline at end of file diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..26b5b37 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,27 @@ +# 项目说明:C 数据结构练习 + +我的数据结构课练习项目,用 C 语言手写各种数据结构。之前用同样风格完成过一个栈(在另一个仓库)。 + +## 协作方式(重要) + +- 这是我的**学习 / 练习**项目,我是初学者。**不要直接贴完整代码或答案**,用提问和提示引导我自己写。 +- 发现我代码里的 bug 时,**不要直接指出在哪一行、是什么**,只给一个模糊方向(哪一段、哪一类问题),让我自己定位和修复。只有我明确求助、或长时间卡住、或问题会造成破坏性后果时,才逐步给更多提示。 +- 解释要口语化、多打比方,别堆术语。用**中文**和我交流。 + +## 代码风格约定 + +- 单文件 `.c`,函数原型写在 `main` 上方,函数体写在下面,测试逻辑写在 `main` 里。 +- 结构体和函数命名沿用拼音风格;函数体里保留中文注释记录当时的思路。 +- 数据用动态数组存储,靠 `malloc` 建、`realloc` 扩容。 + +## 当前进度 + +- 正在做 **顺序表(线性表)**,文件 `1.c`,结构体暂时命名为 `queue`(名字之后可能改)。 +- 已完成:结构体定义、`q_init`(初始化)、`q_add`(尾部追加)。 +- 待办:修正 init;写打印函数;实现任意位置插入 `q_addpro`;实现删除 `q_reduce` / `q_reducepro`;把 `main` 和这些函数串起来测试。 +- 还没接上:`main` 目前没有调用任何操作函数,需要先串通再靠打印看效果。 + +## 学习路线 + +1. 先做**顺序表**(任意位置插入 / 删除,含元素移位)。 +2. 再做**环形队列**(队尾进、队头出)。