线性表的顺序存储结构实验报告总结
一、目的
1.做实验的目的
加深对线性表的理解,学会定义线性表的存储结构,掌握线性表的基本操作。
2.撰写实验报告的目的
对本次实验情况进行总结,加强对实验内容的理解,对实验过程有一-个系统的认识,从中获得本次试验的经验,并
对实验结果进行适当的分析,加深对栈和队列的理解和认识。
二、内容
1.说明实验次数及实验内容
本次实验用一次实验课时完成
实验内容:
节点定义:
typedef struct node{
int idx: int age: struct node *next:
}Node, *List;
本次实验的对象的存储内容包括功D和AGE,所以定义了如上的结构
体,idx用于存储ID号,age用于存储年龄,next用于形成链式结构,Node定义了该类型的一一个节点,List定义了该
类型的- -个链表。
(1)、编写函数CreateList ()和PrintList(),从给定数组创建链表,打印链表。
int idx[8] = {1,2,3,4,5,6, 7,8}:
int age[8] = {15, 18, 13, 22, 50, 18, 30, 20} :
List CreatList(int idx[], int age[], int 1en) {}
int PrintList(List L) {}
(2)、编写函数DeleteNode(List L, int delete_ age),完成以下操作。int DeleteNodeAge(List L, int
delete_ age) {}
该函数传入List L,可以直接修改链表的节点,建议返回值为int或void类型,无需为List类型,3,题同上。
2.1删除年龄为18的成员,打印链表。
2.2删除年龄为20的成员,打印链表。
2.3删除年龄为15的成员,打印链表。
2.4 (可选)删除年龄为21的成员(因无此成员,报错) ,打印链表。.
(3)、编写函数Inser tNodeByIdx(List L, Node nd),完成以下操作。(或编写函数Inser tNodeByIdx(List L,
Node *pnd), 完成以下操作。) (建议用 Node *pnd, 因Node nd作为参数传给函数Inser tNodeByIdx, nd本身不
能被修改,而插入链表需修改nd. next,故需创建新的节点把nd的idx和ag e赋值给新节点。)
3. 1将(idx, age)=(6, 23)插入链表,保证链表的idx仍为升序,打印链表。
3. 2将(idx, age)=(1, 25)插入链表,保证链表的idx仍为升序,打印链表。
(4) (选做) 、编写函数Inser tNodeByAge(List L, Node nd), 完成以下操作。(或编写函数Inser tNodeByAge
(List L, Node *nd), 完成以下操作。)
4. 1将(idx, age)=(9, 31)插入链表,不用保证链表的idx仍为升序,新节点插在节点nd0后面,要求nd0. age是整个链
表节点的age小于且最接近nd. age,打印链表。
(提示:本例要求插在(7, 30)后面。)
4.2插入节点(8,1)
数组和链表(提示:本例要求插在(1, 25)之前,即最前面,因age=1最小。 )
2.做实验完成情况
要求实验内容在实验时间内全部完成,选做实验未做。
创建链表:
List CreateList(int idx[], int age[],int len) {
List p,L:
int i;
L=NULL:
for (i=len-1;i>=0;i-) {
p=new Node :
p->age=age[i]:
p->idx=idx[i];
p- >next=L :
L=p:
return L:
该操作创建一个不带头节 点的链表并返回类型为List的结果打印链表:
void PrintList(List L) {
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论