Commit Graph
3 Commits
Author SHA1 Message Date
SCHOOL 1a5ef9063c 顺序表完成:任意位置插入 / 删除,统一用 end 表示元素个数
新增功能:
- q_addpro  任意位置插入,含位置合法性检查(0 <= num <= end)
- q_reducepro 任意位置删除,含位置合法性检查(0 <= num <= end-1)
- q_reduce  出队,一行复用 q_reducepro(q, 0, x)

修复:
- q_add 的扩容判断改用 end。原先用未初始化的 length,
  导致 "length == max" 永远不成立,扩容代码从未执行过,是潜在的堆越界

结构调整:
- 去掉 length 字段 —— 它与 end 表示同一件事,并存必然产生不一致
- 1.c 改名为 seqlist.c(顺序表 sequential list)
  调试记录.md 改名为 seqlist-debug-notes.md

验收:
- gcc -Wall -Wextra 零 warning 零 error
- 18 个用例全绿(含 0 号位 / 末尾 / 末尾+1 / 负数 / 空表 / 自动扩容)

详见 seqlist-debug-notes.md 中记录的 8 个坑及沉淀的原则。
2026-09-17 22:10:48 +08:00
SCHOOL e542ebe8e1 顺序表:实现 q_addpro 任意位置插入,记录已知问题
1.c:
- q_addpro 完成平移 + 插入的基本逻辑(从后往前挪,避免覆盖未搬元素)
- 修掉 realloc 尺寸算错导致的堆越界(sizeof(q->max) → q->max * sizeof(int))
- 补上遗漏的写入动作 q->start[num] = x

仍存在的问题(详见 调试记录.md):
- 平移循环多搬一次,把垃圾值带进表
- 没有检查插入位置是否合法,非法位置会静默越界写
- q->length 从未初始化,但 q_add 的扩容判断在用它
- q_reduce / q_reducepro 未完成

新增 调试记录.md 记录以上问题与待办测试用例。
2026-09-17 20:56:14 +08:00
7840HS_LapTop b0b2caa90e 初始提交:顺序表结构体、初始化与尾部追加 2026-09-16 20:11:20 +08:00