资源描述:
《顺序表和单链表实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、.数据结构实验报告..一、顺序表操作验证1.实验目的⑴掌握线性表的顺序存储结构;⑵验证顺序表及其基本操作的实现;⑶掌握数据结构及算法的程序实现的基本方法。2.实验内容⑴建立含有若干个元素的顺序表;⑵对已建立的顺序表实现插入、删除、查找等基本操作。3.设计与编码#include#include#includestructLinearList{int*list;intsize;intMaxSize;};typedefstructLinearListLIST;voidInitList(LIST*L,in
2、tms){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+1]=L->list[i];L->list[r
3、c]=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,n;for(i=0;isize;i++)if(item==L
4、->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--;return0;}..voidmain(){LISTLL;inti,r;printf("list
7、addr=%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(i==0)break;printf("请输入插入位置:");scanf("%d",&r);InsertList(&LL,i
8、,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(1){printf("请输入删除元素值,输入0结束查找操作:");fflush(stdin);scanf("%d",&i);if(i==0)bre
9、ak;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=DeleteList2(&LL,r-1);if(i<0)..printf("位置越界");else{printf("线性表为:");OutputList(&LL);}}}4
10、.运行结果..二、单链表操作验证1.实验目的⑴掌握线性表的链式存储结构;⑵验证单