数据结构实验一 顺序表的实现

数据结构实验一 顺序表的实现

ID:46445566

大小:179.00 KB

页数:13页

时间:2019-11-23

数据结构实验一  顺序表的实现_第1页
数据结构实验一  顺序表的实现_第2页
数据结构实验一  顺序表的实现_第3页
数据结构实验一  顺序表的实现_第4页
数据结构实验一  顺序表的实现_第5页
资源描述:

《数据结构实验一 顺序表的实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数据结构实验一顺序表的实现班级学号姓名分数一、实验目的:1.熟悉线性表的基本运算在两种存储结构(顺序结构和链式结构)上的实现;2.以线性表的各种操作的实现为重点;3.通过本次学习帮助学生加深C语言的使用,掌握算法分析方法并对已经设计出的算法进行分析,给出相应的结果。二、实验要求:编写实验程序,上机运行本程序,保存程序的运行结果,结合程序进行分析并写出实验报告。三、实验内容及分析:1.顺序表的建立建立一个含n个数据元素的顺序表并输出该表中各元素的值及顺序表的长度。程序如下:头文件SqList.h的内容如下:#include#i

2、nclude#defineLIST_INIT_SIZE100#defineLISTINCREMENT10#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineINFEASIBLE-1#defineOVERFLOW-2typedefintElemType;typedefintStatus;typedefstruct{ElemType*elem;intlength;intlistsize;}SqList;StatusInitList_Sq(SqList*L){L->ele

3、m=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!L->elem)return(OVERFLOW);L->length=0;L->listsize=LIST_INIT_SIZE;returnOK;}StatusCreatList_Sq(SqList*L,intn)13{inti;printf("输入%d个整数:",n);for(i=0;ielem[i]);returnOK;}//以下是整个源程序:#include

4、>#include"SqList.h"intmain(){inti,n;SqLista;SqList*l=&a;if(InitList_Sq(l)==-2)printf("分配失败");printf("输入要建立的线性表l的长度n:");//输入线性表得长度scanf("%d",&n);l->length=n;printf("线性表的长度是:%d",l->length);CreatList_Sq(l,n);//生成线性表printf("输出线性表l中的元素值:");//输出线性表中的元素for(i=0;ilength;i++)

5、printf("%7d",l->elem[i]);getchar();}程序的运行结果:132.顺序表的插入利用前面的实验先建立一个顺序表L,然后再第i个位置插入元素,通过对比插入元素前后的线性表发生的变化,判断插入操作是否正确。参考程序:#include#include#include"SqList.h"StatusListInsert_Sq(SqList*L,inti,ElemTypee){//在线性表L中的第i个位置前插入一个值为e的元素//i的取值范围:1<=i<=ListLength_Sq(L)

6、ElemType*newbase,*q,*p;if(i<1

7、

8、i>L->length+1)returnERROR;//i值不合法if(L->length>=L->listsize){//当前存储空间已满,增加分配量newbase=(ElemType*)realloc(L->elem,(L->listsize+LISTINCREMENT)*sizeof(ElemType));if(!newbase)return(OVERFLOW);//存储分配失败L->elem=newbase;//新基址L->length=+LISTINCREMENT;//增

9、加存储容量}//ifq=&(L->elem[i-1]);//q为插入位置for(p=&(L->elem[L->length-1]);p>=q;--p)*(p+1)=*p;//插入位置及以后的元素右移*q=e;//插入e++L->length;//表长增1returnOK;}//ListInsert_Sqintmain(){intn,i,x;SqList*L,a;L=&a;InitList_Sq(L);printf("输入要建立的线性表L得长度:");scanf("%d",&n);L->length=n;CreatList_Sq(L,n);

10、printf("插入元素之前线性表L的长度是:%d",L->length);printf("插入元素之前线性表L中的元素是:");for(i=0;i

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

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

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