资源描述:
《数据结构链表实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验二实验名称链表实验目的1、掌握链表的存储结构形式;2、熟练掌握动态链表结构及有关算法的设计。实验题目1、建立含有n个数据元素的带头结点的单链表并输出该表中各元素的值。2、删除单链表中重复的结点。3、将一个已知的带头结点的单链表进行逆置运算。4*、编号为1,2,…n的n个人按顺时针围成一圈,每人持有一正整数密码。开始时任选一正整数m作为报数的上限值,从第一个人按顺时针自1开始报数,报m的人退出圈子,将他的密码作为新的m值。在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。令m的最大值为30。设计一个程序来输出出列顺序源程序代码:第一题:
2、#include#include"malloc.h"#defineNULL0typedefintElemType;typedefstructLNode{ElemTypedata;structLNode*next;}LNode,*LinkList;voidmain(){intn,i;LinkListL,p,s;printf("输入链表元素个数n:");scanf("%d",&n);p=L=(LinkList)malloc(sizeof(LNode));for(i=1;i<=n;i++){s=(LinkList)malloc(sizeof(LNod
3、e));p->next=s;p=s;}p->next=NULL;//在单链表中输入数据p=L->next;printf("输入%d这个结点数据:",n);for(i=1;i<=n;i++){scanf("%d",&p->data);p=p->next;}//输出单链表中的元素的值p=L->next;printf("输出这些元素:");for(i=1;i<=n;i++){printf("%5d",p->data);p=p->next;}printf("");}第二题:#include#include"malloc.h"#defineNULL0
4、typedefintElemType;typedefstructLNode{ElemTypedata;structLNode*next;}LNode,*LinkList;voidmain(){intn,i,w;LinkListL,p,s,pt,p1;printf("输入链表元素个数n:");scanf("%d",&n);p=L=(LinkList)malloc(sizeof(LNode));for(i=1;i<=n;i++){s=(LinkList)malloc(sizeof(LNode));p->next=s;p=s;}p->next=NULL;//在单链表中
5、输入数据p=L->next;printf("输入%d这个接点数据:",n);for(i=1;p;i++){scanf("%d",&p->data);p=p->next;}p=L->next;while(p){w=p->data;for(pt=p->next,p1=p;pt;){if(pt->data==w){p1->next=pt->next;pt=pt->next;}Else{p1=pt;pt=pt->next;}}p=p->next;}p=L->next;for(i=1;p;i++){printf("%5d",p->data);p=p->next;}prin
6、tf("");}第三题:#include#include"malloc.h"#defineNULL0typedefintElemType;typedefstructLNode{ElemTypedate;structLNode*next;}LNode,*LinkList;voidmain(){intn,i;LinkListL,T,p,s,pt;printf("输入链表元素个数n:");scanf("%d",&n);p=L=(LinkList)malloc(sizeof(LNode));for(i=1;i<=n;i++){s=(LinkList
7、)malloc(sizeof(LNode));p->next=s;p=s;}p->next=NULL;//在单链表中输入数据p=L->next;printf("输入%d这个接点数据:",n);for(i=1;p;i++){scanf("%d",&p->date);p=p->next;}p=L->next;T=(LinkList)malloc(sizeof(LNode));T->next=NULL;for(i=1;p;i++){pt=p->next;p->next=T->next;T->next=p;p=pt;}p=T->next;printf("倒置为:")
8、;for(i=1;p;i