博客作业2---线性表

Posted hoppp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了博客作业2---线性表相关的知识,希望对你有一定的参考价值。

一、PTA实验作业

1.题目1:

6-2 线性表元素的区间删除

2. 设计思路

            定义整型变量i,j,k,count
            定义一个数组a[MAXSIZE]
            for i=0 to i小于等于L->Last
                如果L->data[i]不在minD和maxD这个区间内的元素,则保存到数组中,count++
             i++
            end for
            for k=0 to k小于count
                 将数组中的数值赋值到线性表
            end for
            记下线性表中最后一个元素的位置

3.代码截图

4.PTA提交列表说明。


前面几次写代码的时候,没用数组,自己的思路也有问题,提交测试点一直是段错误,后来实在不会,就用数组来辅助

1.题目2:

集合的基本运算(单链表)

2. 设计思路

        并集:
        定义指针p指向带头节点的单链表ha的第一个元素,定义指针q指向带头节点的单链表hb的第一个元素,定义指针r,s用尾插法构造新的链表
        为新链表hc申请空间  
        while(p并且q都不为空)
                将p、q进行比较,按递增的顺序将它们合并到新链表中
        while(p不为空)
            将剩下的元素一个一个接入到新链表中
        while(q不为空)
            将剩下的元素一个一个接入到新链表中
 

        交集
        定义指针p指向带头节点的单链表ha的第一个元素,定义指针q指向带头节点的单链表hb的第一个元素,定义指针r,s用尾插法构造新的链表
        为新链表hc申请空间  
        while(p不为空)
               q指向hb的第一个元素
                while q的元素小于p的元素并且q不为空
                      q移到下一个元素
                 if q不为空并且p、q的元素相等
                            将这个元素插入新链表中
            p移动到下一个元素

        差集
        定义指针p指向带头节点的单链表ha的第一个元素,定义指针q指向带头节点的单链表hb的第一个元素,定义指针r,s用尾插法构造新的链表
        为新链表hc申请空间      
        while(p不为空)
               q指向hb的第一个元素
                while q的元素小于p的元素并且q不为空
                      q移到下一个元素
                 if q为空并且p、q的元素不相等
                            将p这个元素插入新链表中
            p移动到下一个元素

          

3.代码截图





4.PTA提交列表说明。


销毁函数写错了,非法越界,而自己一直以为是差集跟交集的函数错了,找了好久都找不出错误,最后同学帮忙找出了错误。
修改完之后没注意到前一次代码的括号没删完,导致了编译错误

1.题目3:

7-1 两个有序链表序列的合并

2. 设计思路

        建立链表
        为L申请空间,定义指针r、s用尾插法构造新的链表
        定义一个ElemType类型的变量x
        输入x的值,
        while(x>0)
            用尾插法将这个元素插入到链表中
            继续读入x的值
        当不满足条件时,结束while

        合并
        定义指针p指向带头节点的单链表ha的第一个元素,定义指针q指向带头节点的单链表hb的第一个元素,定义指针r,s用尾插法构造新的链表
        为新链表hc申请空间  
        while(p并且q都不为空)
                将p、q进行比较,按递增的顺序将它们合并到新链表中
        while(p不为空)
            将剩下的元素一个一个接入到新链表中
        while(q不为空)
            将剩下的元素一个一个接入到新链表中
            

3.代码截图




4.PTA提交列表说明。


第一次提交忘了改编译器
第二、三次提交,链表空时,段错误,又是销毁的出错,非法越界了,跟前一题一样
后面提交的,输入时的判断条件错误,写成x!=-1,有并列数字时错误,并列数字也要全部插进去

二、截图本周题目集的PTA最后排名

1.顺序表PTA排名

2.链表PTA排名

3.我的总分:

245

三、本周学习总结

1.谈谈你本周数据结构学习时间是如何安排,对自己安排满意么,若不满意,打算做什么改变?

有空的时候就写写pta,预习的时候主要看视频,书比较少翻,只有在自己打代码不懂的时候,才会翻书看,
不太满意,觉得自己还是要平时的时候多看看书上的代码,加深自己的印象,在写代码的时候做到尽量少翻书

2.谈谈你对线性表的认识?

线性表的存储结构有两种:顺序和链表
顺序表元素的地址是连续的,
链表节点的地址不是连续的,是靠指针连起来的
顺序表在查找数据的时候会比较方便,而链表在增加和删除的时候,步骤会比顺序表的简单

线性表除第一个元素外,其他每一个元素有且仅有一个直接前驱,除最后一个元素外,其他每一个元素有且仅有一个直接后继

3.代码Git提交记录截图

四、阅读代码


(此代码的网址)
https://gitee.com/adressad/codes/xlqmk8dc1750s2nh3j4vp67
该段代码的主要作用是判断我们输入的密码是否足够安全,用c1、c2、c3、c4分别代表4个不同种类的密码元素,当元素种类小于3的时候,就说明密码的安全系数不够高,当元素种类大于等于3时,说明密码的安全系数够了

以上是关于博客作业2---线性表的主要内容,如果未能解决你的问题,请参考以下文章

博客作业2---线性表

博客作业2---线性表

博客作业02---线性表

博客作业2---线性表

博客作业2---线性表

博客作业2---线性表