欢迎来到天天文库
浏览记录
ID:35504836
大小:60.41 KB
页数:9页
时间:2019-03-25
《数据结构线性表实验三》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、数据结构实验三线性表实验:顺序表、链表一、实验目的及要求1)熟悉线性表的基本运算在两种存储结构(顺序结构和链式结构)上的实现;2)以线性表的各种操作(建立、插入、删除等)的实现为重点;3)通过本次实习帮助学生加深对高级语言C语言的使用(特别是函数参数、指针类型、链表的使用)。4)认真阅读和掌握本实验的参考程序,上机运行本程序,保存和打印出程序的运行结果,并结合程序进行分析。按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果。二、实验内容1)编程实现线性表两种存储结构中的基本操作的实现(线性表的创建、插入、删除和查找),并设计一个主菜单完成各个功
2、能的调用。三、实验流程、操作步骤或核心代码、算法段顺序表:#include//#include/*^)态存储分配库函数養/constLIST_INIT_SIZE=80;constLISHNCREMENT=10;typedeFintElemType;//typedefcharElemType;typedeFstruct〃线性表的存储表示教材P22//InitList_Sq//输入线性表元素uoidInputElem_Sq
3、(SqList&L){ElemTypex;inti;i=0;scanfC^d'^&x);while(x?=0){L・elen[i]=x;i";scanf(&x);L.length=i;uoiddispElem_Sq(SqListL){//输岀表中元素inti;printf("SqListelemis:");for(i=0;i4、st&L){方插入元素操作教材P24算法2・6uoidListInsert_Sq(SqList&L,inti,ElenTypee)/在腹坯型第i个兀琴前插入新的元素6//i的合法氾围为15、VERFLOW;L.length=O;L.listsize=LIST_INIT_SIZE;returnOK;}StatusDestory(SqList&L)〃销毁顺序表{free(L.elem);L.elem=NULL;returnOK;}L.length=O;returnOK;}StatusListEmpty(SqListL)//判断是否清空{if(L.length==O)returnOK;//useOutputSentencedisplayelsereturnERROR;}StatusListLength(SqList&L){returnL.length;}St6、atusGetelem(SqListLJnti,ElemType&e)//取元素{if(i7、8、i>L.length)returnERROR;//RETURNISOVERe=L.elem[i-l];returnOK;}StatusLocateElem(SqListL,ElemTypee)//查找元素{inti=l;while(i<=L.length&&L.elem[i]!=e)i++;//<=?if(i<=L.length){printf(”它的位置是:%dnJ+l);returnOK;}returnERROR;}StatusPriorElem(SqListL,E9、lemTypecur_e,ElemType&pre_e)〃取出前驱{for(inti=0;i10、i>=L.length){printf("Can'tfindthiselement!");returnERROR;}elsepre_e=L.elem[ireturnOK;}StatusNextElem(SqListL,ElemTypecur_e,ElemType&next_e)〃取出后继{for(inti=O;i
4、st&L){方插入元素操作教材P24算法2・6uoidListInsert_Sq(SqList&L,inti,ElenTypee)/在腹坯型第i个兀琴前插入新的元素6//i的合法氾围为1
5、VERFLOW;L.length=O;L.listsize=LIST_INIT_SIZE;returnOK;}StatusDestory(SqList&L)〃销毁顺序表{free(L.elem);L.elem=NULL;returnOK;}L.length=O;returnOK;}StatusListEmpty(SqListL)//判断是否清空{if(L.length==O)returnOK;//useOutputSentencedisplayelsereturnERROR;}StatusListLength(SqList&L){returnL.length;}St
6、atusGetelem(SqListLJnti,ElemType&e)//取元素{if(i7、8、i>L.length)returnERROR;//RETURNISOVERe=L.elem[i-l];returnOK;}StatusLocateElem(SqListL,ElemTypee)//查找元素{inti=l;while(i<=L.length&&L.elem[i]!=e)i++;//<=?if(i<=L.length){printf(”它的位置是:%dnJ+l);returnOK;}returnERROR;}StatusPriorElem(SqListL,E9、lemTypecur_e,ElemType&pre_e)〃取出前驱{for(inti=0;i10、i>=L.length){printf("Can'tfindthiselement!");returnERROR;}elsepre_e=L.elem[ireturnOK;}StatusNextElem(SqListL,ElemTypecur_e,ElemType&next_e)〃取出后继{for(inti=O;i
7、
8、i>L.length)returnERROR;//RETURNISOVERe=L.elem[i-l];returnOK;}StatusLocateElem(SqListL,ElemTypee)//查找元素{inti=l;while(i<=L.length&&L.elem[i]!=e)i++;//<=?if(i<=L.length){printf(”它的位置是:%dnJ+l);returnOK;}returnERROR;}StatusPriorElem(SqListL,E
9、lemTypecur_e,ElemType&pre_e)〃取出前驱{for(inti=0;i10、i>=L.length){printf("Can'tfindthiselement!");returnERROR;}elsepre_e=L.elem[ireturnOK;}StatusNextElem(SqListL,ElemTypecur_e,ElemType&next_e)〃取出后继{for(inti=O;i
10、i>=L.length){printf("Can'tfindthiselement!");returnERROR;}elsepre_e=L.elem[ireturnOK;}StatusNextElem(SqListL,ElemTypecur_e,ElemType&next_e)〃取出后继{for(inti=O;i
此文档下载收益归作者所有