一、PTA实验作业
1. 线性表元素的区间删除
2. 设计思路
List Delete( List L, ElementType minD, ElementType maxD )
{
定义变量 i=0,j=0;
创建链表 L1;
L1=(List)malloc(sizeof(struct LNode));
L1->Last等于-1;
for(i=0;i<=L->Last;i++)
如果L->Data[i]小于等于minD或者L->Data[i]等于等于maxD
L1->Data[j]等于L->Data[i];
j自增;
L1->Last自增;
end
end
return L1;
}
3.代码截图
4.PTA提交列表说明。
1.jmu-ds-链表倒数第m个数
2. 设计思路
int Find(LinkList L, int m )
{
定义变量 i=1;
创建结构体变量 p1=L->next,p2=L->next;
while(p1!=NULL&&i<=m)
p1指向下一个结点
i自增;
end
如果m大于等于i或者m小于1
return -1;
否则
while(p1!=NULL)
p1指向下一个结点
p2指向下一个结点
end
end
return p2->data;
}
3.代码截图
4.PTA提交列表说明。
- 中间段错误
m小于为0或者负数的情况没有考虑
1.两个有序链表序列的合并
2. 设计思路
定义标准函数
typedef int ElemType;
typedef struct LNode //定义单链表结点类型
{
ElemType data;
struct LNode next;
} LinkList;
void DispList(LinkList L); //输出链表元素,每个结点元素值以空格符间隔。
void CreateListR(LinkList &L); //创建链表
void DestroyList(LinkList &L);//销毁链表
void Union(LinkList ha,LinkList hb,LinkList &hc) ; //求两有序集合的并
main 函数
创建结构体指针 ha,hb,hc;
创建链表ha,hb
Union(ha,hb,hc);
输出hc
销毁链表
return 0;
end
创建链表,销毁链表,输出链表元素,每个结点元素值以空格符间隔。(省)
void Union(LinkList ha,LinkList hb,LinkList &hc)//求两有序集合的并
{
定义结构体指针 pa=ha->next,pb=hb->next,r,*s;
hc=new LinkList;
r=hc;
如果pa!=NULL与pb!=NULL)
if(pa->data
3.代码截图
4.PTA提交列表说明。
- 大规模输入时运行超时
多此一举增添了递增的函数。
二、截图本周题目集的PTA最后排名
1.顺序表PTA排名
2.链表PTA排名
3.我的总分:
245
三、本周学习总结
1.谈谈你本周数据结构学习时间是如何安排,对自己安排满意么,若不满意,打算做什么改变?
这周数据结构学习时间我一般在晚上9:40-11:00花时间写pta,我觉的对这个安排挺满意的,改变的话应该
抽空花时间看一下数据结构的书。2.谈谈你对线性表的认识?
- 线性表是一种常用的数据结构。在实际应用中,线性表都是以栈、队列、字符串、数组等特殊线性表的形式来使用的
线性表是一个线性结构,它是一个含有n≥0个结点的有限序列,对于其中的结点,
有且仅有一个开始结点没有前驱但有一个后继结点,有且仅有一个终端结点没有后继但有一个前驱结点,其它的结点都有且仅有一个前驱和一个后继结点3.代码Git提交记录截图
四、阅读代码
7.27-2 一元多项式的乘法与加法运算
- 这段网络上代码写了50行,用数组做相当精简。