第一步骨架和追加

最终作品第一步:补全 SeatRow 的构造函数(用 new string[c] 开定长存储)和 append。放进四个人之后只输出 size。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

第二步接上按下标查

给它加上 get,并且越界要挡住(返回「越界」)。取下标 2,补全后输出结果。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

第三步接上插入

加上 insert,在下标 1 插入「北辰」。补全后输出 size。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

第四步接上扩容

让 push 在坐满时自动扩容(两倍)。往容量 2 的排里放 4 个人,补全后输出最终总座位数。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

交付增删查扩容一起验收

这是这条路线的最终作品。把完整的 SeatRow(new[] 定长存储 + size + push / grow / get / insert,析构 delete[])写出来,然后一次验完五条:放 4 个人之后 size 是 4;容量从 2

开始练习 →

new[] 出来的要怎么还

new int[cap] 开出来的缓冲区,不用了要【0】。

开始练习 →

修好扩容时丢的数据

场景:实验机上 ~/work/seq/grow.cpp 是一个手写顺序表:容量从 2 开始,满了就 grow() 翻倍。可数一多,前面的数就变成了乱七八糟的值。 任务:修好 grow():换新缓冲区时要把旧数据按原顺序搬过去,旧的那块还要

开始练习 →

修好插入时的覆盖

场景:~/work/seq/ins.cpp 按指令把数插到指定下标。可在中间插一次,后面的数就全变成了同一个。 任务:修好 insert_at() 的搬移方向。make 编译后用 sample.txt 自测;check 会用随机的插入序列(

开始练习 →

修好删除后的个数

场景:~/work/seq/era.cpp 按下标删数,可删完以后表里的个数没变,多出一个;有时内存检查还报越界。 任务:修好 erase_at():往前补位的循环别读到 data[size],删完 size 要减一。make 编译后用 s

开始练习 →

补写找第一次出现

场景:~/work/seq/find.cpp 读入一张表和若干个要查的数,find_first 还没写。 任务:补全 find_first:返回 x 第一次出现的下标,表里没有就返回 -1。make 编译后用 sample.txt 自测;c

开始练习 →