资源描述:
《中南大学 数据结构实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数据结构实验报告专业班级:指导老师:余腊生姓名:学号:实验一单链表的基本操作的实现一、实验目的掌握单链表的基本操作:建立、插入、删除、查找等运算。二、实验仪器安装VC++的PC机。三、实验原理利用线性表的特性以及其链式存储结构特点对线性表进行相关操作。四、实验内容程序中演示了单链表的创建、插入、删除和查找。程序如下:#include#include#include#includetypedefstructnode{intdata;structnode*next;}NOD
2、E;/******************************************/NODE*Create(){NODE*p,*head;intx;head=(NODE*)malloc(sizeof(NODE));head->next=NULL;printf("Inputdata,-1toEnd!");scanf("%d",&x);while(x!=-1){p=(NODE*)malloc(sizeof(NODE));p->data=x;p->next=head->next;head->next=p;scanf("%d",&x);}re
3、turn(head);}/******************************************/voidOutput(NODE*head){NODE*p;p=head;printf("BegintodumptheLinkList...");while(p->next!=NULL){printf("->%d",p->next->data);p=p->next;}printf("TheLinkListended!");}/******************************************/intListl
4、en(NODE*head){inti=0;NODE*p=head;while(p->next!=NULL){i++;p=p->next;}return(i);}/******************************************/intGet(NODE*head,inti){intj=0;NODE*p=head;while(p->next&&jnext;}if(!p->next
5、
6、j>i)return(0);elsereturn(p->data);}/**************************
7、****************/voidDel(NODE*head,inti){NODE*p=head;intj=0;while(p->next&&jnext;}if(!p->next
8、
9、j>i-1)printf("thepositioniswrong");elsep->next=p->next->next;}/******************************************/voidIns(NODE*head,inti,inte){NODE*p=head,*q;intj=0;while(p
10、->next&&jnext;}if(!p->next&&j>i-1)printf("Wrongposition");else{q=(NODE*)malloc(sizeof(NODE));q->data=e;q->next=p->next;p->next=q;}}/******************************************/main(){NODE*head;intlength;inti,element;system("CLS");head=Create();Output(head);len
11、gth=Listlen(head);printf("thelengthofthelinkis%d",length);printf("inputtheorder:");scanf("%d",&i);element=Get(head,i);printf("theelementoftheorderis%d",element);printf("inputthedelposition");scanf("%d",&i);Del(head,i);Output(head);printf("Inputtheinsertposionandelemen
12、t:");scanf("%d%d",&i,&element);Ins(head,i,element);Output(head);ge