博客作业2---线性表
一、PTA实验作业(5分)
一
题目1:线性表元素的区间删除
2. 设计思路
定义 i控制循环,count计数在区间内的数字个数
for i=0 to Last {
如果数字在minD到maxD内count++
否则 第i-count个数换成第i个数
Last修改为Last-count
返回L
3.代码截图
4.PTA提交列表说明。
- 循环次数错误,没有遍历到最后一个L->Last
二
1.题目2:6-3 jmu-ds-链表倒数第m个数
2. 设计思路
定义一个p指针指向L头节点
遍历L 计数个数n
如果m>0
for i=1 to n-m+1
i增1
L左移
x=L的数据data 直到指到第n-m+1个数字为止(倒数第m个)
如果m<=0 x=-1
返回x
3.代码截图
4.PTA提交列表说明。
- 定义出错 LinkList *p=L;看了同学的都是p=L,改过来就好了。
三
1.题目3:7-1 两个有序链表序列的合并
2.设计思路
主函数:
输入a数组 b数组
输出合并后的s3数组
尾插法建立链表s1存a s2存b
合并函数:
a指向s1的第一个数字 b指向s2的第一个数字
为s3申请新的结点
r指向s3的头节点
while遍历a和b(其中一个结束即停止)
若a指向的数字大于b指向的数字
r指向b的指向的结点
b右移
若a指向的数字小于b指向的数字
r指向a指向的结点
a右移
若a等于b指向的数字
r指向a的结点
a b同时右移
若a没遍历完 则接下来a后的所有结点接上r
若b没遍历完 则接下来b后的所有结点接上r
r->next=NULL
输出s3
3.代码截图
4.PTA提交列表说明。
二、截图本周题目集的PTA最后排名
1.顺序表PTA排名
2.链表PTA排名
3.我的总分:127
三、本周学习总结
1.谈谈你本周数据结构学习时间是如何安排,对自己安排满意么,若不满意,打算做什么改变?
非常不满意的学习,感觉自己在逃避学习,刚刚开始做题,做不出来就不想做了,自己在逃避这些事,感觉是非常不好的状态,觉得心态应该调整过来,不去解决永远都不会,解决得少解决得多都会有进步,积少成多。
2.谈谈你对线性表的认识?
单链表 双链表 循环链表,双链表感觉比较灵活,有前驱和后置结点,循环链表的话知道尾结点就可以知道头节点(单链表),然后还有觉得有两种建链表的方法很方便,头插尾插,可以根据需要选择。单链表和双链表,循环链表的选择也要根据需要来,对于不同问题用不同类型的链表解决时间复杂度和空间复杂度都有所不同,如果选择的合适,可以大大节省空间也提高速度。