数据结构实验一要求

数据结构实验一要求

ID:33522170

大小:61.50 KB

页数:11页

时间:2019-02-26

数据结构实验一要求_第1页
数据结构实验一要求_第2页
数据结构实验一要求_第3页
数据结构实验一要求_第4页
数据结构实验一要求_第5页
资源描述:

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

1、实验1:线性表的顺序表示与链式表示【实验目的】1.加深理解线性表的顺序表示与链式表示的意义和区别,掌握用它们表示时各基本操作的设计与实现。2.学会定义线性表的顺序存储类型和链式存储类型,实现C程序的基本结构,对线性表的一些基本操作和具体的函数定义。3.掌握线性表的基本操作(初始化、建立、插入、删除、遍历等)。4.掌握对多函数程序的输入、编辑、调试和运行过程。5.进一步熟练C语言的使用,特别是指针和链表的使用。6.能在实际应用背景下恰当选择顺序存储和链式存储。【实验要求】1.预习C语言中的结构的定义和基本操作方法2.对线性表的每个基本操作用单独的函数实现3.编写

2、完整程序完成下面的实验内容并上机运行4.整理并上交实验报告【实验内容】1.分别建立包含10个数据元素的顺序线性表和链式线性表;2.从键盘输入一个数据元素和插入位置k,将元素插入到线性表中第k(包含0号位置)个位置;3.从键盘输入一个数据元素关键字或位置k(包含1号位置),从线性表中删除相应数据元素;4.能完成查找功能;5.给出程序及插入、删除前和插入、删除后线性表结果。【实验指导】顺序表示和链式表示可以分成两个程序来调试(见示例程序1和2)。教材中的算法一般要作少许修改才能运行,这些修改包括:1、算法函数中局部变量的定义,如ListInsert_Sq中的i,n

3、ewbase,p,q等;2、可能出现的“类”C语言的语句,必须改为C语言语句,如数据交换语句xß>y;3、如果采用TC作为C语言调试环境,算法函数的“引用”类型参数要改为指针类型参数并修改程序中的使用方法,如ListInsert_Sq中的参数&L要改为*L。程序中使用L方法的修改见示例程序1。一个简单程序通常主要由三部分构成:1、常量定义(#define),类型定义(typedef)及函数原型定义(#include);2、算法函数,即InitList_Sq、ListInsert_Sq、ListDelete_Sq等;3、主函数。【思考提高】实现两个线性表的并。示

4、例程序1,InitList_Sq、ListInsert_Sq、ListDelete_Sq在TC2.0中的调试:#include"stdio.h"#include"malloc.h"#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineINFEASIBLE-1#defineOVERFLOW-2#defineLIST_INIT_SIZE10#defineLISTINCREMENT4typedefintStatus;typedefintElemType;typedefstruct{ElemType*elem;i

5、ntlength;intlistsize;}SqList;StatusInitList_Sq(SqList*L){L->elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!L->elem)return(OVERFLOW);L->length=0;L->listsize=LIST_INIT_SIZE;returnOK;}StatusListInsert_Sq(SqList*L,inti,ElemTypee){ElemType*q,*p,*newbase;if(i<1

6、

7、i>L->length+1

8、)returnERROR;if(L->length>=L->listsize){newbase=(ElemType*)realloc(L->elem,(L->listsize+LISTINCREMENT)*sizeof(ElemType));if(!newbase)return(OVERFLOW);L->elem=newbase;L->listsize+=LISTINCREMENT;}q=&(L->elem[i-1]);for(p=&(L->elem[L->length-1]);p>=q;--p)*(p+1)=*p;*q=e;++L->length;retur

9、nOK;}StatusListDelete_Sq(SqList*L,inti,ElemType*e){ElemType*p,*q;if((i<1)

10、

11、(i>L->length))returnERROR;p=&(L->elem[i-1]);*e=*p;q=(L->elem+L->length-1);for(++p;p<=q;++p)*(p-1)=*p;--L->length;returnOK;}voidmain(){SqListLst;inti,n=15;ElemTypee;if(InitList_Sq(&Lst)==OK){for(i=1;i<=n;i++)i

12、f(ListInsert_Sq(&Ls

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

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

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