博客作业2---线性表
一、PTA实验作业(5分)
1.题目1:7-1 最长连续递增子序列
2. 设计思路(伪代码或流程图)
定义顺序表L
定义循环变量i;变量count=0,flag=1(该起始的数一个);变量n(总个数),变量last和next存放前一数与后一数
创建线性表并赋值
for(i=0;i<L->length;i++){
利用last和next存放前后数的值
当后一个数比较大时
flag++;continue计算连续递增子序列的长度
当flag>count时
count=flag;number=i来保留最大的递增处末位置
当last>next时
flag=1重新计算新的递增子序列长度
}
全顺序递增时
count=flag;number=i;
输出起始位置number-count+1到number这段数据的值
}
3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)
4.PTA提交列表说明。
自己在调试好发上去后部分正确
发现自己的代码不完善,如果全顺序意味着一直进入有continue的语句而没有对count进行赋值,所以自己后来加上了全顺序条件的考虑
但是最后一个点自己一直过不去,以为是maxsize的最大值问题,自己改大了好多次maxsize的值,一直还是不正确,在把maxsize调小在Devc++去取临界点时
发现也没出错,后来询问同学,试着把自己的循环修改为从0开始就正确
1.题目2:6-2 jmu-ds-单链表逆置
2. 设计思路(伪代码或流程图)
先按照题目要求用尾插法建立单链表
在转置函数中定义p=L->next;L->next=NULL;用头插法重新建立单链表
输出单链表中的数据
3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)
4.PTA提交列表说明。
自己在链表为空的条件上出现错误,进行判断修改后正确
1.题目3:7-4(选做) 一元多项式求导
2. 设计思路(伪代码或流程图)
typedef int ElemType;
typedef struct LNode //定义单链表结点类型
{
ElemType data;//存放系数
ElemType number;//存放指数
struct LNode *next;
} LinkList;
创建链表,把系数存放到data指数存放到number,输入数据
进行求导,把每个结点中的data值改为data与number的积,number的值减一
输出链表中新结点的值
销毁链表
3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)
4.PTA提交列表说明。
在devc++调试成功后放到pta出现错误,阅读自己代码发现是自己的循环条件的问题,导致大多数情况会多次循环
后自己修改试了随机几组数感觉正确
后因为自己的编译语言没调好有出现几次编译错误,自己在C与C++语言调整时,应为&的使用问题,总有编译错误
自己调整为c++语言后出现部分正确
该条件的输出要求是输出是0 0
二、截图本周题目集的PTA最后排名(3分)
1.顺序表PTA排名
2.链表PTA排名
3.我的总分:
209
三、本周学习总结(2分)
1.谈谈你本周数据结构学习时间是如何安排,对自己安排满意么,若不满意,打算做什么改变?(1分)
感觉自己大多数时间是在打代码,书看的比较少,对书中的一些代码理解也是模模糊糊的,因为用链表,很多错误devc++不会进行提醒,
但是程序总是无声无息的崩溃了,而且这次pta题目中函数的增加,在一些题目上的调试会花比较多的时间,感觉效率低下
不懂的问题一般是查书,与同学探讨
自己觉得还是抽空看看书吧,多理解理解链表的相关操作和注意事项
2.谈谈你对线性表的认识?(1分)
我认为线性表是一种一一对应的存储形式,方便数据的读取,查找,顺序表查找方便,而链表删除方便,节省空间
1 线性表是一种典型的线性结构,也是最常用的数据结构,具有一对一的关系,是具有相同特征的数据元素的一个有限序列
2 线性表的存储形式有顺序存储和链式存储
3 顺序表采用数组来实现,在使用顺序表时易出现空间的浪费
4 链表:每个储存节点包含数据域与指针域,有单链表,双链表,循环链表
3.代码Git提交记录截图
在码云的项目中,依次选择统计-Commits历史-设置时间段,进行搜索并截图,如下图所示,需要出现学号、项目提交说明。请在码云中将你的昵称改为“学号-姓名”。