数据结构顺序表与单链表的建立

数据结构顺序表与单链表的建立

ID:14957027

大小:143.50 KB

页数:11页

时间:2018-07-31

数据结构顺序表与单链表的建立_第1页
数据结构顺序表与单链表的建立_第2页
数据结构顺序表与单链表的建立_第3页
数据结构顺序表与单链表的建立_第4页
数据结构顺序表与单链表的建立_第5页
资源描述:

《数据结构顺序表与单链表的建立》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、封面:安徽大学网络工程数据结构顺序表与单链表的建立——2012/4/7一实验目的1.熟练掌握线性表的基本操作在顺序存储和链式存储上的实现。2.以线性表的各种操作(建立、插入、删除、遍历等)的实现为重点。3.通过本章实验加深对c语言的使用(特别是函数的参数调用、指针类型的应用和链表的建立等各种基本操作)。二实验内容1.顺序表的基本操作的实现.包括:(1).顺序表的类型定义;(2).创建一个元素为1,10,9,5的顺序表;(3).向(2)中表的指定位置插入一个元素;(4).删除(3)中顺序表中指定位置的元素;(5).依次输出(2)~(4)顺序表中的元素.2.链表的

2、基本操作的实现.包括:(1).链表的类型定义;(2).创建一个元素为5,-4,9,10,3的链表;(3).向(2)表中指定位置插入一个元素;(4).删除(3)表中指定位置的元素;(5).依次输出(2)~(4)表中的元素.三、实验步骤1.本实验用到的数据结构(1)逻辑结构:线性结构(2)存储结构;顺序存储结构,链式存储结构2.各程序的功能和算法设计思想程序一//数据结构实验.cpp:定义控制台应用程序的入口点。//#include"stdafx.h"#include#include#include#de

3、fineOK1#defineERROR0#defineOVERFLOW-2#defineLISTINITSIZE100#defineLISTINCREMENT10typedefintstatus;typedefstruct{int*elem;intlength;intlistsize;}sqlist;voidInitlist(sqlist*l){(*l).elem=(int*)malloc(LISTINITSIZE*sizeof(int));if(!(*l).elem)exit(OVERFLOW);(*l).length=0;(*l).listsize=LIS

4、TINITSIZE;}statusListInsert(sqlist*l,inti,inth){int*newbase,*q,*p;if(i<1

5、

6、i>(*l).length+1){printf("插入位置不合法!");returnERROR;}if((*l).length>=(*l).listsize){newbase=(int*)realloc((*l).elem,((*l).listsize+LISTINCREMENT)*sizeof(int));if(!newbase)exit(OVERFLOW);(*l).elem=newbase;(*l).li

7、stsize+=LISTINCREMENT;}q=(*l).elem+i-1;for(p=(*l).elem+(*l).length-1;p>=q;--p){*(p+1)=*p;}*q=h;++(*l).length;returnOK;}statusGetelem(sqlistl,inti,int*e){if(i<1

8、

9、(i>l.length)){printf("输入位置不合法!");returnERROR;}*e=*(l.elem+i-1);printf("第%d个元素的值是:%d",i,*e);printf("");returnOK;}stat

10、usListDelete(sqlist*l,inti){int*p,*q;if(i<1

11、

12、i>((*l).length)){printf("删除元素位置不合法!");returnERROR;}p=(*l).elem+i-1;printf("删除第%d个元素%d",i,*p);q=(*l).elem+(*l).length-1;for(++p;p<=q;++p)*(p-1)=*p;(*l).length--;returnOK;}voidListTraverse(sqlistl){int*p;inti;p=l.elem;for(i=1;i<=l.lengt

13、h;i++)printf("%d",*p++);printf("");}voidmain(){intn,i,j,k,e,h,m=1;sqlistla;Initlist(&la);printf("请输入顺序表的长度n");scanf("%d",&n);printf("请输入%d个数据",n);for(j=1;j<=n;j++){scanf("%d",&e);ListInsert(&la,j,e);}printf("输出各元素");printf("la=");ListTraverse(la);fflush(stdin);printf("")

14、;printf("请依次输入插入元素的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。