c语言数据结构顺序表_第1页
c语言数据结构顺序表_第2页
c语言数据结构顺序表_第3页
c语言数据结构顺序表_第4页
c语言数据结构顺序表_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据结构上机实验课后练习报告:天明学号:班级:通信1412015年9月28日星期一1、实验一:编写一个程序,实现顺序表的各种基本运算,并在此基础上设计一个主 程序完成以下功能。1 .初始化顺序表L2 .依次采用尾插法或者头插法插入元素 a,b,c,d,e3 .输出顺序表L4 .输出顺序表的长度5 .判断顺序表是否为空6 .输出顺序表的第四个元素7 .输出元素a的位置8 .在第三个元素位置插入元素f9 .输出顺序表L10 .删除顺序表L的第四个元素11 .输出顺序表L12 .释放顺序表实验代码:#include<stdio.h>#include<stdlib.h>#inc

2、lude<malloc.h>#include<string.h># define MaxSize 20/设置顺序表的初始长度# define ListAdd 5每次申请增加的存大小# define OVERFLOW -1# define OK 0# define ERROR -2typedef char ElemType;Word资料typedef structElemType *elem;int length;顺序表长度int listsize;顺序表占用的存空间顺序表定义SqList;I*初始化顺序表函数*/void InitSq_List(SqList &

3、L)L.elem = new ElemTypeMaxSize;if(!L.elem)exit(OVERFLOW);L.length = 0;L.listsize = L.length;/* 创建一个顺序表 */ void GreatSqList(SqList &L,int n) 在堆上申请存存申请失败int i;for(i = 0;i < n;i+) /依次输入顺序表容scanf("%c”,&L.elemi);fflush(stdin);+L.length;/* 销毁顺序表 */void DeatrotSqList(SqList &L)delete L.

4、elem;L.length = 0;L.listsize = 0;/尾插法插入元素释放指针指向的存int SqList_Inser(SqList &L,int i,ElemType e) int j;ElemType *p;/插入位置非法则退出if(i<1 | i>L.length + 1) return ERROR;if(L.length >= L.listsize)如果初始化申请的空间已满,则重新申(ElemType*)realloc(L.elem,(L.listsize+ListAdd) *sizeof( ElemType );if(!p) return OVE

5、RFLOW;L.elem = p;L.listsize += ListAdd;for(j=L.length - 1;j>=i-1;j-)L.elemj+1 = L.elemjL.elemi-1 = e;+L.length;return OK;/*判断顺序表是否为空元素依次往后移覆盖,实现删除*int ListEmpty(SqList &L)return (L.length = 0);/* 获取顺序表长度 */ int getList_Len(SqList &L)return L.length;/*取出对应下标元素*int getIndex(SqList L,char el

6、em)int index = 0;while(index<L.length )判断元素是否相当找到元素并返回下标/否则返回错误if( L.elemindex = elem) return index+1;index+;return ERROR;/*根据下标取出对应的元素*/ int LocateElem(SqList L,int index)int i = 0;if(index >=L.length | index<1)printf("下标越界,无法查询!");return ERROR;return L.elemindex-1;/*删除指定位置的元素值*/

7、 int DleteElem(SqList &L,int n) int j;if(n>L.length | n<1)return ERROR;for(j = n-1;j<L.length;j+) L.elemj = L.elemj+1;return OK;产* 输出顺序表的容 *void DisPlay_SqList(SqList L)int i;if(ListEmpty(L)return ;for(i=0;i<L.length;i+)printf("%4c”,L.elemi);printf("n");/* 主函数 */int ma

8、in()SqList L;/定义一个顺序表对象ElemType e,elem;int index;int length = 0;InitSq_List(L);printf("初始化顺序表:n");GreatSqList(L,5);printf("顺序表 L 为:");DisPlay_SqList(L);length = getList_Len(L);printf("顺序表的长度为:%dn",length);if(ListEmpty(L)printf("顺序表为空!n");elseprintf("顺序表不为空! n");elem = LocateElem(L,1);e = LocateElem( L, 4);printf("第四个元素为:%cn",e);index = getIndex(L,elem);printf("元素 %c 的位置是第 %d 个n",elem,index);printf("在第三个位置插入元素f:&qu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论