DS博客作业02--线性表

1.本周学习总结

1.1思维导图

1.2谈谈你对线性表的认识和学习体会

这几周学习了线性表,了解了线性表的两种存储方式,一种顺序储存,用的是数组,另一种是链式存储,用的是链表。线性表作为一种一对一的存储结构,可以更加方便的存储数据,完成一些复杂度较高的操作。
在写pta的时候,总是会犯一些低级错误,感觉自己对一些基本操作不够熟悉,还是要多翻翻书,不能光是背代码,还要加强对代码的理解。

2.PTA实验作业

2.1题目1:jmu-ds-头插法建链表

实现头插法建链表。需要实现下述两个函数

2.1.1设计思路(伪代码)
建立一个指针 s
定义一个整形数 i
L 指针创建空间
L 为头结点
for i=0 i <n i++
 s 创建空间
 输入线性表s的相应的值
 // 头插法建链表相应的语法
end for
2.1.2代码截图

2.1.3本题PTA提交列表说明

刚开始的编译错误是因为没有在创建链表时分配空间,之后部分正确是答案显示时候出错了,在答案末尾有空格出现,还有就是“空间表!”后面多打了一个空格。

2.2题目2:jmu-ds-单链表逆置

本题要求实现一个函数,将给定单向链表逆置,即表头置为表尾,表尾置为表头。链表为带头结点链表。请实现逆转函数。

2.2.1设计思路(伪代码)
void ReverseList(LinkList &L)  单链表逆置 
{
   创建指针 p q
   p=L->next
   L->next=NULL                //p作为L链表的头结点
   while(p)                        
     q=p->next              //q为L链表头结点的后续结点
     p->next=L->next        
     L->next=p
     p=q             //逆置操作
  end while
2.2.2代码截图

2.2.3本题PTA提交列表说明

2.3题目3:jmu-ds-有序表插入数据

要求实现3个函数,在递增的顺序表中插入一个新整数,并保持该顺序表的有序性。

2.3.1设计思路(伪代码)
void CreateSqList(SqList &L, int n)        //创建链表
{
  定义整数型变量i k x,令i,k为0
  线性表L分配空间
  while(i<n)     //遍历
    //线性表依次存放数据
  end while
}
void InsertSq(SqList &L, int x)        //插入数据
{
  定义整数型变量i,j
  for i=0 x>L->data[i]&&i<L-length i++//遍历
  for j=L-length j>i j--
       //元素向后移动一个位置
  end for
  //增加链表长度
}
void DispSqList(SqList L) //输出顺序表内容 ,数据间空格隔开,尾部不能有空格。
  定义变量i
  如果L是空表,输出“erorr”
  否则  先输出L->data[0]
    for  i=1  to  i<L->length 
       输出“ ” ,输出L->data[i]         //保证最后一个数尾部无空格
    end for
2.3.2代码截图

2.3.3本题PTA提交列表说明

3.阅读代码

3.1 题目

给定一个链表,判断链表中是否有环。
为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。

3.2 解题思路

依次遍历链表,将遍历的每一个节点都指向第一个,当遍历的节点等于第一个节点时说明有环路

3.3 代码截图

3.4 学习体会

posted on 2019-03-31 12:26  风言风语r  阅读(674)  评论(0编辑  收藏  举报

导航