第02次作业-线性表

一、PTA实验作业

本周要求挑3道题目写设计思路、调试过程。设计思路用伪代码描述。题目选做要求:

1.顺序表选择一题(6-2,6-3,7-1选一题),代码必须用顺序结构抽象数据类型封装

2.单链表选择一题(6-1不能选)

3.有序表选择一题

1.题目

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

2.  6-3 jmu-ds-链表倒数第m个数.

3.  7-3 两个有序序列的中位数

 

 

2. 设计思路(伪代码或流程图)

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

     定义变量j  number用来计数

       If(最小值>=最大值||L为空)

          Return

        For j=0 to L->Last

          If(在区间内)

         Number++

          Else

         删除此时的值

         L->Last-==number //指针跳回表头

        return

     

2.  6-3 jmu-ds-链表倒数第m个数.

     定义变量 i 用来计数

     定义指针 j k 来存放头结点

     If(m为正数)

       for i=1 to m

        {if(j)

         j指向下一个结点

         else break;

        }

        End for

      Else return -1 //m<=0返回-1

       If(j==NULL) return -1 //j指向结尾,说明m值过大,返回-1

         K=k->next;

       While(j->next) //链表没有指到结尾

         j&&k都指向下一结点

        return k->data //返回倒数第m个数的值

 

3. 7-3 两个有序序列的中位数.

 定义A[]存放数字,2*x表示需要输入的个数,i用来计数

   For i=0 to 2*x

    输入两个有序序列

   Sort(A,A+2*x) //给所有元素进行排序

    Prinf A[x-1] //输出中位数

   

3,代码截图

  

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

 

 2.6-3 jmu-ds-链表倒数第m个数

3.7-3 两个有序序列的中位数

.

 

4.PTA提交列表说明

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

 

错误点:发现判断不在区间内了后删除的不是想要删掉的那个数,导致出现错误

解决方法:通过反复调试后终于删除了想删的那个数,并通过了测试点。

2.6-3 jmu-ds-链表倒数第m个数

 

错误点:一开始在想定义的那两个链表,第一个链表移动完,第二个链表从后面开始向前移动相同的次数,结果死活不对 (;¬_¬)

解决方法:后来看了群上大佬的做法,第一个链表移动完,第二个链表移动(length-m)次,最终得到了正确的答案

3. 7-3 两个有序序列的中位数.

 

错误点:编译完发现无法得到中位数或直接得不出答案

解决方法:请教同学后发现存在sort函数可以直接对两个序列进行排序,这时直接取中间的值即是中位数

 

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

本次2个题目集总分:290

1.顺序表PTA排名

 

2.链表PTA排名

 

3.我的总分

总分:2

 

三、本周学习总结

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

 

学习时间安排:晚自修或空闲时间花时间来学习数据结构.

不满意,应该多与同学一起交流讨论,而不是自己埋头写。

 

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

 主观认识:线性表是一种数据结构,可以在任意位置插入删除

 具体总结:线性表一种逻辑结构,相同数据类型的n个数据元素的有限序列,除第一个元素外,每个元素有且仅有一个直接前驱,除最后一个元素外,每个元素有且仅有一个直接后继。

线性表是逻辑结构,顺序表和链表是存储结构。

3.代码Git提交记录截图

在码云的项目中,依次选择统计-Commits历史-设置时间段,进行搜索并截图,如下图所示,需要出现学号、项目提交说明。请在码云中将你的昵称改为“学号-姓名”。

 

 

 

posted @ 2018-03-24 19:46  朱心溁  阅读(251)  评论(3编辑  收藏  举报