实验二实验名称链表实验目的1、掌握链表的存储结构形式;2、熟练掌握动态链表结构及有关算法的设计。实验题目1、建立含有n个数据元素的带头结点的单链表并输出该表中各元素的值。2、删除单链表中重复的结点。3、将一个已知的带头结点的单链表进行逆置运算。4*、编号为1,2,…n的n个人按顺时针围成一圈,每人持有一正整数密码。开始时任选一正整数m作为报数的上限值,从第一个人按顺时针自1开始报数,报m的人退出圈子,将他的密码作为新的m值。在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。令m的最大值为30。设计一个程序来输出出列顺序源程序代码:第一题:#include<>#include""#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(LNode));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("\n");}第二题:#include<>#include""#defineNULL0typedefintElemType;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;//在单链表中输入数据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("
数据结构链表实验报告 来自淘豆网m.daumloan.com转载请标明出处.