DS博客作业02--线性表
1.本周学习总结
1.1思维导图
总结线性表内容💡
1.2.谈谈你对线性表的认识及学习体会。🌛🌜
开始总是一头雾水的🚬,写代码过程也总是按照书本复制黏贴,以为自己理解代码了,但是没了书就没了脑子。好多东西没有实质上的理解。做后有一题pta的时候没用书,暴露了好多基础知识不牢固的问题,问同学才正真明白是什么,在此之后的一节链表课,感觉清晰了很多。
2.PTA实验作业
2.1.题目9:有序链表合并 (有序表)👻
2.1.1设计思路(伪代码)
void MergeList(LinkList &L1,LinkList L2)
{
定义指针p,s,r
if(L1->next==NULL)
L1->next=L2->next
else if(L2->next==NULL)
return
将L1赋值为r
将L1->next赋值为s
将L2->next赋值为p
while(s!=NULL&&p!=NULL)
{
if(s->data<p->data)
{
r->next =s
s向后移一个位置
}
else if(p->data<s->data)
{
r->next =p
p向后移一个位置
}
else if(s->data==p->data)
{
r->next =p;
p,s同时向后移一个位置
}
r向后移一个位置
}
if(s==NULL)
r->next=p break
else if(p==NULL)
r->next=s break
}
2.1.2代码截图
- 正确使用if,else if 语句❗❗❗❗❗❗❗❗❗❗
- 最开始想建个新链表直接搞上去,失败了🤦然后就段错误,多种错误
- 用归并法做的时候,开始没考虑清楚空的多种可能性
- 接着就是因为if ,else if语句,做的时候完全没考虑都用if语句的话每个都会进入一次,就很有可能出现差错😱
2.1.3本题PTA提交列表说明。
2.2 单链表逆置(单链表)💃
2.2.1设计思路(伪代码)
void ReverseList(LinkList &L)
{
定义指针p,s
定义指针L1
将p指向L->next
L1动态申请内存
将L1->next赋值为NULL
//运用头插法逆置
while(p)
{
s动态申请内存
s->data=p->data;
s->next=L1->next;
L1->next=s;
p=p->next;
}
}
2.2.2代码截图
2.2.3本题PTA提交列表说明。
- 主要代码没有错误,就是定义指针的时候,结构名写错了😭😭😭
2.3 顺序表删除重复元素(顺序表)👼
2.3.1设计思路(伪代码)
void CreateSqList(List &L,int a[],int n)
{
定义i
动态申请内存
把n的值赋给L->length
for i=0 to i<n
把a[i]的值赋给L->data[i]
}
void DispSqList(List L)
{
定义i
for i=0 to i<L->length
{
输出L->data[i]
if(i!=(L->length)-1) 输出空格
}
}
void DelSameNode(List &L)
{
定义i,k=0,j,flag
for i=0 to i<L->length //按从小到大顺序排序
for j=1 to i<L->length
if(L->data[j]<L->data[j-1])
用flag进行位置交换
L->data[k++]=L->data[0]
for i=1 to i<L->length
if(L->data[i]!=L->data[i-1])
L->data[k++]=L->data[i]
}
2.3.2代码截图
2.3.3本题PTA提交列表说明。
3、阅读代码😲🤨😮🤔😱😵😇🐱👤👌
找一份优秀代码,理解代码功能,并讲出你所选代码优点及可以学习地方。主要找以下3种类型代码:
读源码,如从python或C++中找用线性表封装的库源码,分析代码功能及可以学习地方。
考研题种关于线性表内容。可以找参加过考研的学长学姐拿。尤其是想要考研同学,可以结合本章内容,用考研题训练学习。
ACM、PTA天梯赛、leecode面试刷题网站,找线性表相关题目阅读分析。
3.1 题目
给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。
3.2 解题思路
- 定义i,在循环里依次增加
- 判断i能否被2整除,依次存入l和r中
- 使用两个链表来存放,最后连接起来
3.3 代码截图
3.4 学习体会
- 学习了分别运用两条链存放符合要求的东西,最后再将其连接的方法
- 在我浅薄的见识中,见识到连等的魅力
- 其中存放数据时,第一个位置很关键,在分类中单独考虑
- 这代码,看起来比较清晰,比较好理解