博客作业2---线性表
一、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
s=new LinkList; //以下操作为尾插法(多次用到)
s->data等于pa->data;
r->next等于s; r等于s;
pa等于pa->next;
end
否则pa->data等于pb->data)
尾插法
end
否则
尾插法
end
end
如果pa不为空集
尾插法
end
如果pb不为空集
尾插法
end
r->next=NULL;
end
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行,用数组做相当精简。