DS博客作业02--线性表
1.本周学习总结
1.1思维导图##
1.2.谈谈你对线性表的认识及学习体会。##
2.PTA实验作业##
本周要求挑3道题目写设计思路、调试过程。设计思路用伪代码描述。题目选做要求:
顺序表选择一题
单链表选择一题
有序表选择一题
原则上题目选择越难,代码量越大分值越高。
2.1.题目1:6-3 jmu-ds- 顺序表删除重复元素##
设计一个算法,从顺序表中删除重复的元素,并使剩余元素间的相对次序保存不变。
2.1.1设计思路(伪代码)##
定义变量 i,j,k 分别用做之后循环中的顺序表下标
for i=0 to L->length 遍历顺序表
for j=i+1 to L->length
if L->data[j]==L->data[i] 查找重复数据
for k=j+1 to L->length
L->data[k--1]=L->data[k] 删除重复数据,之后的数据前移
end for
L-> length--
end for
end for
if L->data[0]== L->data[L->length] 排除第一个数和最后一个数相等
L-> length--
2.1.2代码截图##
2.1.3本题PTA提交列表说明。##
2.2 题目2:6-8 jmu-ds-链表倒数第m个数##
2.21设计思路(伪代码)##
查找倒数第m个数前用到6-7的链表逆置 尾插法建立链表,头插法逆置链表
这样一来查找倒数m个数变为查找第m个数 较为便捷
建立新结点 node head
申请newL的动态空间
while L->next 不为空
申请node的动态空间
头插法 输入链表newL中 逆置L链表
end while
L=head
if m=0
return -1
for i=0 to m
L=L->next
end for
if L==NULL
return -1
else
return L->data
2.2.2代码截图##
2.2.3本题PTA提交列表说明。##
问题:部分正确的情况 少判断了当m为0时,位置无效的情况
解决:添加对m为0时的判断
2.3 题目3:##
2.3.1设计思路(伪代码)##