别看了,都是错的代码,丢人啊。
别把你们带到沟里了。不过也没事,你们不知道我是谁,哈哈哈哈哈,那就好,那就好。丢不到多少人。没关系没关系。
目录
一、顺序表的删除函数
错误代码:
错误代码运行结果:
疑惑:
为什么??消失了??
错因:
能感觉到,写的很乱。--seq->len更新的那两句放到for循环里很明显就不对。
改:
1、写一个findSeq函数来找删除的元素的位置
正确代码:
正确代码的运行结果:
deletSeq(seq,100);
啊啊啊啊啊啊啊啊啊啊啊啊啊,终于写完了!!!!!!!!!!!!!!!!
二、插入->扩容函数
错误代码:
主函数:
运行结果:
如果空间够的话,插入函数是没有问题的,但是空间不够的话,这样扩容不行。
错因:
没有搞清楚扩容的步骤。
正确步骤:
1、先申请一块更大的空间,(2倍扩容更好一些)
2、原空间的内容拷贝到新空间
3、更新表头
疑问:
怎么区分原空间和新空间然后拷贝?? (借助辅助指针??)
辅助指针用什么定义??
修改1:
哭死,还是错误的。(1)辅助指针申请Seq->date的同类,不是Seq的同类。
(2)return 是用来返回0或者-1的,用来表示成功、失败。
但是大方向是对的。
还有,申请空间后加个(3)if判断申请是不是成功。
问题已解决,代码不便公开,见谅。
三、show函数
错误代码:
for(i=1;i<=seq->len;i++)
错误代码运行结果 :
疑惑:
为什么???改0到<len就对了。
错因:
脑子瓦特了,笑。感谢我AI哥。傻了,这个是数组!数组!数组!!!啊喂!
正确代码:
四、任意位置插入函数
自己写的代码:
pushbackSeq1(seq,1,99);
运行结果:
成功了,但是还有不妥之处。
问题:
1、范围校验不是这么校验的啊亲
2、扩容和上次的代码一样,复制过来就行了啊亲。
3、为什么循环范围是从len-1到>=pos而不是len到>pos;
解决:
(1)
(3)感谢我AI哥:
啊,对,len指向的是插入位置,没有值。看图,所以是把pos到len-1的值向后挪一个位置
但是我的之所以运行成功的原因是:
这块的代码保证了他的正确性。
wohouhou哦吼吼!!!开心!!!终于敲完了。删除还要再研究研究。