作者:秋静222 | 来源:互联网 | 2024-10-14 13:01
1.思维导图及学习体会1.1思维导图1.2谈谈你对线性表的认识及学习体会。这几周学习线性表的知识,其实就是链表与数组,这方面的知识上个学期学的不是很好,这个学期要加油。然后假期的时
1.思维导图及学习体会
1.1思维导图
1.2谈谈你对线性表的认识及学习体会。
这几周学习线性表的知识,其实就是链表与数组,这方面的知识上个学期学的不是很好,这个学期要加油。然后假期的时候我主要是看慕课上的视频,里面介绍了线性表的一些常见操作:比如创建空的线性表,删除区间,插入数字,排序还有销毁等等。以及头插法尾插法建链表。用重构链表的方法进行操作。这些都要熟练掌握,多多看书上的基本代码,以及老师所给的课堂派上的方法技巧。以后做相关题的时候才不会慌乱或者没有思路。
2.PTA实验作业
2.1题目一:本题要求实现顺序表的操作集。
各个操作函数的定义为:
List MakeEmpty():创建并返回一个空的线性表;
Position Find( List L, ElementType X ):返回线性表中X的位置。若找不到则返回ERROR;
bool Insert( List L, ElementType X, Position P ):将X插入在位置P并返回true。若空间已满,则打印“FULL”并返回false;如果参数P指向非法位置,则打 印“ILLEGAL POSITION”并返回false;
bool Delete( List L, Position P ):将位置P的元素删除并返回true。若参数P指向非法位置,则打印“POSITION P EMPTY”(其中P是参数值)并返回false。
2.1.1设计思路
List MakeEmpty()
定义结构体指针PtrL
动态内存分配
PtrL指向数组长度Last,定义为-1
return PtrL
Position Find(List L, ElementType X)
定义位置i,初始化为0
while(i到L末尾或者Data[i]不为x)
i++
如果i到L末尾,返回长度-1;否则找到了x所在的位置i,返回i
bool Insert(List L, ElementType X, Position P)
{
定义i,j
if P的数字为长度减一 输出“链表已满”
return false;
if P<0或者P比Last大 输出“非法位置”
return false;
for j = L->Last to P
将Data[j] 的值向后挪一位
将P 位置的值赋给x,则实现了插入操作
return true;
bool Delete(List L, Position P)
定义变量i用于循环使用
if L->Last == -1
return false;
if P<0或者P比Last大 输出“非法位置”
return false;
for i = P to i Last
将Data[i+1]的值赋给Data[i],覆盖前一位,从而实现删除操作
return true;
2.1.2代码截图
2.1.3本题PTA提交列表说明
Q1:
A1:
Q2:
A2:
Q3:
A3:
2.2题目二:本题要求实现一个函数,将给定单向链表逆置,即表头置为表尾,表尾置为表头。链表为带头结点链表。
2.2.1设计思路
2.2.2代码截图
2.2.3本题PTA提交列表说明
Q1:
A1:
2.3题目三:已知两个递增链表序列L1与L2,2个链表都是带头结点链表。设计函数实现L1,L2的合并,合并的链表仍然递增有序,头结点为L1的头结点。 合并后需要去除重复元素。
2.3.1设计思路
2.3.2代码截图
2.3.3本题PTA提交列表说明
Q1:
A1: