




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
实验总结报告-线性表 第一篇:实验总结报告-线性表实验总结报告—栈和队列学号:姓名:时间:一、目的1.做实验的目的加深对线性表的理解,学会定义线性表的存储结构,掌握线性表的基本操作。2.撰写实验报告的目的对本次实验情况进行总结,加强对实验内容的理解,对实验过程有一个系统的认识,从中获得本次试验的经验,并对实验结果进行适当的分析,加深对栈和队列的理解和认识。二、内容1.说明实验次数及实验内容本次实验用一次实验课时完成实验内容:节点定义:typedefstructnode{intidx;intage;structnode*next;}Node,*List;本次实验的对象的存储内容包括ID和AGE,所以定义了如上的结构体,idx用于存储ID号,age用于存储年龄,next用于形成链式结构,Node定义了该类型的一个节点,List定义了该类型的一个链表。(1)、编写函数CreateList()和PrintList(),从给定数组创建链表,打印链表。intidx[8]={1,2,3,4,5,6,7,8};intage[8]={15,18,13,22,50,18,30,20};ListCreatList(intidx[],intage[],intlen){}intPrintList(ListL){}(2)、编写函数DeleteNode(ListL,intdelete_age),完成以下操作。intDeleteNodeAge(ListL,intdelete_age){}该函数传入ListL,可以直接修改链表的节点,建议返回值为int或void类型,无需为List类型,3,4题同上。2.1删除年龄为18的成员,打印链表。2.2删除年龄为20的成员,打印链表。2.3删除年龄为15的成员,打印链表。2.4(可选)删除年龄为21的成员(因无此成员,报错),打印链表。(3)、编写函数InsertNodeByIdx(ListL,Nodend),完成以下操作。(或编写函数InsertNodeByIdx(ListL,Node*pnd),完成以下操作。)(建议用Node*pnd,因Nodend作为参数传给函数InsertNodeByIdx,nd本身不能被修改,而插入链表需修改nd.next,故需创建新的节点把nd的idx和age赋值给新节点。)3.1将(idx,age)=(6,23)插入链表,保证链表的idx仍为升序,打印链表。3.2将(idx,age)=(1,25)插入链表,保证链表的idx仍为升序,打印链表。(4)(选做)、编写函数InsertNodeByAge(ListL,Nodend),完成以下操作。(或编写函数InsertNodeByAge(ListL,Node*pnd),完成以下操作。)4.1将(idx,age)=(9,31)插入链表,不用保证链表的idx仍为升序,新节点插在节点nd0后面,要求nd0.age是整个链表节点的age小于且最接近nd.age,打印链表。(提示:本例要求插在(7,30)后面。)4.2插入节点(8,1)(提示:本例要求插在(1,25)之前,即最前面,因age=1最小。)2.做实验完成情况要求实验内容在实验时间内全部完成,选做实验未做。创建链表:ListCreateList(intidx[],intage[],intlen){Listp,L;inti;L=NULL;for(i=len-1;i>=0;i--){p=newNode;p->age=age[i];p->idx=idx[i];p->next=L;L=p;}returnL;}该操作创建一个不带头节点的链表并返回类型为List的结果打印链表:voidPrintList(ListL){Listp=L;printf(“idxagen”);while(p){printf(“%d%dn”,p->idx,p->age);p=p->next;}}该操作从表头到表尾依次打印idx和age删除节点:intDeleteNodeAge(List&L,intdelete_age){Listp=L;intflag=0;if(p->age==delete_age){L=L->next;flag=1;}else{while(p->next){if(p->next->age==delete_age){flag++;if(p->next->next==NULL)p->next=NULL;elsep->next=p->next->next;}elsep=p->next;}}returnflag;}该操作删除需要删除的节点,成功删除返回删除节点的个数,否则返回0插入节点:voidInsertNodeByIdx(List&L,Node*pnd){Listp=L;if(p->idx>=pnd->idx){p

邻家****曼玉
实名认证
内容提供者


最近下载