博客作业2---线性表
---恢复内容开始---
#一丶PTA实验作业 ##题目1:6-2 线性表元素的区间删除2. 设计思路
定义整型变量i,j;
新定义一个链表 L1;
for i=0 to L->Last 遍历链表
if(L->Data[i]<maxD&&L->Data[i]>minD)
则 L->data[i]=0(作为重构筛选标志)
end for
for i= 0 to L->last
if(L->Data[i]!=0)
则 L1->Data[j]=L->Data[i];
j++递增;
end for
尾指针L->Last=j-1;
返回L1;
3.代码截图
4.PTA提交列表说明
- 新定义顺序表是要给它重新分配空间
L1=(List)malloc(sizeof(struct LNode)) ;
- 尾指针初始L->Last应为-1,最终指向表尾
题目2:6-3 jmu-ds-链表倒数第m个数
2. 设计思路
定义整型变量 i,n,g,结构体指针p=L->next,s;
for p=L->next to p=NULL 遍历链表求出长度
g++;
p=p->next;
end for
s=(LinkList)malloc(sizeof(LNode)); 分配空间
s=L;
for i=0 to g-m 将结构体指针移到倒数位置
s=s->next
end for
3.代码截图
4.PTA提交列表说明
- 为判断明确输入数据为无效的情况,在大于链表长度以及输入负数时均为不满足情况
题目3:7-1 两个有序链表序列的合并
2. 设计思路
typedef struct LNode //定义单链表结点类型
{
ElemType data;
struct LNode *next;
} LinkList;
定义结构体链表*L1,*L2,*L3,结构体指针*r,*s
L1=(LinkList *)malloc(sizeof(LinkList));动态分配空间
L1->next=NULL;(L2,L3同)
r=L1
输入number
for to -1
s=(LinkList *)malloc(sizeof(LinkList));
s->data=number 尾插法
s->data=number;
r->next=s;
r=s;
输入number
end for
(L2输入数据操作同L1)
while to p->data=-1 || q->data=-1 二路归并
if(p->data<q->data)
则 e=(LinkList *)malloc(sizeof(LinkList));
e->data=p->data;
r->next=e;
r=e;
p=p->next;
else
e=(LinkList *)malloc(sizeof(LinkList));
e->data=q->data;
r->next=e;
r=e;
q=q->next;
end while
if(p->data==-1)
则while to q->data=-1
e=(LinkList *)malloc(sizeof(LinkList));
e->data=q->data;
r->next=e;
r=e;
q=q->next;
end while
r->next=NULL
else
while to p->data=-1
e=(LinkList *)malloc(sizeof(LinkList));
e->data=q->data;
r->next=e;
r=e;
p=p->next;
end while
r->next=NULL
s=L3->next;
if(L3!=NULL){
则while to s=NULL
按格式输出s->data
else 输出NULL;
3.代码截图
4.PTA提交列表说明
- 不明白大数据输入为什么通不过,测试不出来
- 习得了二路归并法
二、截图本周题目集的PTA最后排名
1.顺序表PTA排名
2.链表PTA排名
我的总分:155
三、本周学习总结
1.谈谈你本周数据结构学习时间是如何安排,对自己安排满意么,若不满意,打算做什么改变?(1分)
- 写代码时一直需要翻阅书本,对基本知识点掌握不够牢固
- 预习时不能仅限于课堂,自己也需要拓展
2.谈谈你对线性表的认识?
- 线性表是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列。数据元素是一个抽象的符号,其具体含义在不同的情况下一般不同。
- 线性表特点:线性表的逻辑顺序与物理顺序一致,数据元素相邻的位置与计算机的物理位置相同