博客作业2---线性表
一、PTA实验作业
1.题目1:6-2 线性表元素的区间删除
2. 设计思路
i=0,k=0
遍历单链表 i to L->Last
if L->data[ i ]在删除区间内
k++]\=
else
L->Data[i-k]=L->Data[i];
L->Last =L->Last-k;
返回L;
3.代码截图
4.PTA提交列表说明
一开始时理解错题意,想成是删除元素,是想的先找到那个元素,再让其后面的元素将其往前移就可以,但是其测试的数据并不是只有递增的关系,所以导致测试点都通过不了,后来在遍历链表的时候理解错链表的长度,导致链表没有遍历完,导致部分正确
题目2:6-2 jmu-ds-单链表逆置
2. 设计思路
尾插法建立单链表
List p,s;
p=L->next
头插法重构L
遍历L,while(p!=NULL)
s=p;
p=p->next;
s->next=L->next;
L->next=s;
输出单链表
3.代码截图
4.PTA提交列表说明
这题是问同学加自己理解后写的,但是还是出现段错误,上次上机老师说逆置函数没有出错,其问题是出在输出函数,但回来改了好久还是段错误,目前还没有改出来,
3.题目2:7-3 两个有序序列的中位数
2.设计思路
采用尾插法建立两个单向链表
LinkList r,s
r=L;
i to n
cin>>e
s->data=e
r->next=s
r=s;
r->next=NULL;
合并两个单链表
LinkList pa=LA-next ,pb=LB->next ,r,s
r=LC;
遍历LA,LB链表
if(pa->data < pb->data)
pa->data 尾插法插入LC链表
else
pb-data尾插法插入链表
若 LA未遍历完全
pa->data尾插法插入链表
若LB未遍历完全
pb->data尾插法插入链表
输出合并后的中位数
LinkList ha=LC;
遍历LC
i to (2n-1)/2
ha=ha->next
cout<<ha->data
end
3.代码截图
4.PTA提交列表说明
主要问题出在头文件,对于结构指针不是很理解,所以导致一直是编译错误,其他题的很多编译错误也是因为头文件错误,后来换了另一种指针定义结构体就对了
二、截图本周题目集的PTA最后排名
1.顺序表PTA排名
2.链表PTA排名
两次题目总分:188
三、本周学习总结(2分)
1.谈谈你本周数据结构学习时间是如何安排,对自己安排满意么,若不满意,打算做什么改变?(1分)
本周数据结构的学习主要的大部分时间是在研究课本上的代码,由于自己的基础也不是很好,所以我觉得应该先把书上的知识先搞懂,然后再去研究其他的,编程的时间都是安排在每天的晚自习后的几个小时,遇到不懂得问题一般是先自己百度搜索,看自己能不能理解,如果解决不了的话,再问同学或者学长,对于自己本周的学习安排并不是很满意,感觉没有把大部分的时间花在编程上,所以下周的时间安排要尽快把书上的知识弄懂,然后把更多的时间放在编程上。
2.谈谈你对线性表的认识?(1分)
线性表是最简单的也是最常用的一种数据结构,线性表是具有相同特性的数据元素的一个有限序列。线性表的存储结构分为顺序存储结构和链式存储结构,其中线性表的顺序存储结构是把线性表中的所以元素按照其逻辑顺序依次存储到计算机存储器中指定存储位置开始的一块的存储空间中,靠顺序表实现;而线性表的链式存储结构是靠链表实现。
本章主要学习了线性表和有序表。其中线性表学习了顺序表,链表,链表又分为单链表,双链表,循环链表;有序表主要学习了有序表的存储结构和基本运算算法
3.代码Git提交记录截图