资源描述:
《顺序表和单链表实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数据结构实验报告一、顺序表操作验证1.实验目的⑴掌握线性表的顺序存储结构;⑵验证顺序表及其基本操作的实现;⑶掌握数据结构及算法的程序实现的基本方法。2.实验内容⑴建立含有若干个元素的顺序表;⑵对已建立的顺序表实现插入、删除、查找等基本操作。3.设计与编码#include#include#includestructLinearList{int*list;intsize;intMaxSize;};typedefstructLinearListLIST;voidInitLis
2、t(LIST*L,intms){if((L->list=(int*)malloc(ms*sizeof(int)))==NULL){printf("内存申请错误!");exit(1);}L->size=0;L->MaxSize=ms;}intInsertList(LIST*L,intitem,intrc){inti;if(L->size>=L->MaxSize)return-1;if(rc<0)rc=0;if(rc>L->size)rc=L->size;for(i=L->size-1;i>=rc;i--)L->list[i+
3、1]=L->list[i];L->list[rc]=item;L->size++;return0;}voidOutputList(LIST*L){inti;for(i=0;isize;i++)printf("%d",L->list[i]);printf("");}intFindList(LIST*L,intitem){inti;for(i=0;isize;i++)if(item==L->list[i])returni;return-1;}intDeleteList1(LIST*L,intitem){inti
4、,n;for(i=0;isize;i++)if(item==L->list[i])break;if(isize){for(n=i;nsize-1;n++)L->list[n]=L->list[n+1];L->size--;returni;}return-1;}intDeleteList2(LIST*L,intrc){inti,n;if(rc<0
5、
6、rc>=L->size)return-1;for(n=rc;nsize-1;n++)L->list[n]=L->list[n+1];L->size--
7、;return0;}voidmain(){LISTLL;inti,r;printf("listaddr=%ptsize=%dtMaxSize=%d",LL.list,LL.size,LL.MaxSize);InitList(&LL,100);printf("listaddr=%ptsize=%dtMaxSize=%d",LL.list,LL.size,LL.MaxSize);while(1){printf("请输入元素值,输入0结束插入操作:");fflush(stdin);scanf("%d",&i);if(
8、i==0)break;printf("请输入插入位置:");scanf("%d",&r);InsertList(&LL,i,r-1);printf("线性表为:");OutputList(&LL);}while(1){printf("请输入查找元素值,输入0结束查找操作:");fflush(stdin);scanf("%d",&i);if(i==0)break;r=FindList(&LL,i);if(r<0)printf("没找到");elseprintf("有符合条件的元素,位置为:%d",r+1);}while(
9、1){printf("请输入删除元素值,输入0结束查找操作:");fflush(stdin);scanf("%d",&i);if(i==0)break;r=DeleteList1(&LL,i);if(r<0)printf("没找到");else{printf("有符合条件的元素,位置为:%d线性表为:",r+1);OutputList(&LL);}}while(1){printf("请输入删除元素位置,输入0结束查找操作:");fflush(stdin);scanf("%d",&r);if(r==0)break;i=D
10、eleteList2(&LL,r-1);if(i<0)printf("位置越界");else{printf("线性表为:");OutputList(&LL);}}}4.运行结果二、单链表操作验证1.实验目的⑴掌握线性表的链式存储结构;⑵验证单链序表及其基本操作的实现;⑶进