




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程实验报告
课程名称:数据结构实验
专业班级:计算机___________________
学号:___________________________
姓名:___________________________
指导教师:___________________________
报告日期:2023年1月6日
计算机科学与技术学院
目录
1基于顺序存储结构实现线性表的基本运算错误!未定义书签。
1.1实验目的。错误!未定义书签。
1.2线性表演示系统设计。错误!未定义书签。
1.2.1系统总体设计。错误!未定义书签。
1.2.2有关常量和类型定义。错误!未定义书签。
1.2.3算法设计错误!未定义书签。
1.3线性表演示系统实现与测试。错误!未定义书签。
1.3.1系统实现错误!未定义书签。
1.3.2系统测试。错误!未定义书签。
1.4实验小结。错误!未定义书签。
2基于链式实现线性表的基本运算错误!未定义书签。
2.1问题描述错误!未定义书签。
2.2线性表演示系统设计。错误!未定义书签。
2.2.1系统总体设计错误!未定义书签。
2.2.2有关常量和类型定义。错误!未定义书签。
2.2.3算法设计。错误!未定义书签。
2.3线性表演示系统实现与测试。错误!未定义书签。
2.3.1系统实现错误!未定义书签。
2.3.2系统测试。错误!未定义书签。
2.4实验小结。错误!未定义书签。
3基于顺序存储结构实现栈的基本运算错误!未定义书签。
3.1实验目的。错误!未定义书签。
3.2栈演示系统设计。错误!未定义书签。
3.2.1系统总体设计。错误!未定义书签。
3.2.2算法实现错误!未定义书签。
3.3栈演示系统实现与测试。错误!未定义书签。
3.3.1程序实现。错误!未定义书签。
3.3.2系统测试。错误!未定义书签。
3.4实验小结错误!未定义书签。
4基于循环队列存储结构实现队列的基本运算。错误!未定义书签。
4.1问题描述。错误!未定义书签。
4.2.1系统总体设计错误!未定义书签。
4.2.2有关常量和类型定义。错误!未定义书签。
4.2.3算法设计。错误!未定义书签。
4.3队列演示系统实现与测试。错误!未定义书签。
4.3.1系统实现。错误!未定义书签。
4.3.2系统测试。错误!未定义书签。
4.4实验小结错误!未定义书签。
5基于二叉链表实现二叉树的基本运算错误!未定义书签。
5.1实验目的错误!未定义书签。
5.2.1系统总体设计。错误!未定义书签。
5.2.2有关常量和类型定义。错误!未定义书签。
5.2.3算法设计错误!未定义书签。
5.3二叉树演示系统实现与测试。错误!未定义书签。
5.3.1系统实现错误!未定义书签。
5.3.2系统测试错误!未定义书签。
5.4实验小结。错误!未定义书签。
6基于邻接表实现图的基本和常见运算错误!未定义书签。
6.1实验目的。错误!未定义书签。
6.2.1系统总体设计。错误!未定义书签。
6.2.2有关常量和类型定义。错误!未定义书签。
6.2.3算法设计。错误!未定义书签。
6.3图演示系统实现与测试错误!未定义书签。
6.3.1系统实现错误!未定义书签。
6.3.2系统测试错误!未定义书签。
6.4实验小结。错误!未定义书签。
参考文献错误!未定义书签。
0
1基于顺序存储结构实现线性表的基本运算
1.1实验目的
。通过实验达成:(1)加深对线性表的概念、基本运算的理解;(2)纯熟掌握线性
表的逻辑结构与物理结构的关系;(3)物理结构采用顺序表,纯熟掌握线性表的基
本运算的实现。
1.2线性表演示系统设计
1.2.1系统总体设计
本系统提供一个顺序存储的线性表。
该演示系统提供的操作有:表的初始化、销毁、清空、判空,求表长、获取数
据元素、查找数据元素、获得前驱、获得后继、创建线性表、插入数据元素、删
除数据元素、表的遍历。
在程序中实现消息解决,涉及数据的输入和输出,程序的退出。
1.2.2有关常量和类型定义
数据元素类型的定义:
typedefintstatus;
typedefintElemType;
有关常量的定义:
#defineTRUE1
#defineFALSE0
#defineOK1
#defineERRORO
#defineINFEASTABLE-1
#defineOVERFLOW-2
#defineLISTINITSIZE100
#defineLISTINCREMENT10
1.2.3算法设计
(1)InitaList(&L)
操作结果:构造一个空的线性表。
(2)DestroyList(&L)
初始条件:线性表L已存在。
。操作结果:销毁线性表L。
⑶ClearList(&L)
。初始条件:线性表L已存在。
操作结果:将L重置为空表。
(4)ListEmpty(L)
。初始条件:线性表L已存在。
操作结果:若L为空表,则返回TRUE,否则返回FALSE。
(5)ListLength(L)
初始条件:线性表已存在。
操作结果:返回L中数据元素的个数。
(6)GetElem(L,i,&e)
初始条件:线性表已存在,1近iWListLength(L)。
操作结果:用e返回L中第i个数据元素的值。
(7)LocateElem(L,e,compare())
。初始条件:线性表已存在。
操作结果:返回L中第1个与e满足关系compare()关系的数据元素的
。。。位序,若这样的数据元素不存在,则返回值为0。
(8)PriorElem(L,cur_e,&pre_e)
。初始条件:线性表L已存在。
。操作结果:若cur_e是L的数据元素,且不是第一个,则用pre_e返回它的
。。前驱,否则操作失败,Pre_e无定义。
(9)NextE1em(L,cur_e,&next_e)
。初始条件:线性表L已存在。
操作结果:若cur_e是L的数据元素,且不是最后一个,则用next_e返回
它
。。的后继,否则操作失败,next_e无定义。
(10)Listinsert(&L,i,e)
。初始条件:线性表L已存在且非空,1WiWListLength(L)+l。
操作结果:在L的第i个位置之前插入新的数据元素e,L的长度加1
(11)ListDelete(&L,i,&e)
。初始条件:线性表L已存在且非空,iWiWListLength(L)。
操作结果:删除L的第i个数据元素,用e返回其值,L的长度减1.
(12)ListTraverse(L,visit())
初始条件:线性表L已存在。
。操作结果:依次对L的每个数据元素调用函数visit。。一旦调用失败,则操
作失败。
1.3线性表演示系统实现与测试
1.3.1系统实现
编程环境为VisualStudio2023,程序清单如下:
#define_CRT_SECURE_N0_WARNINGS
/*LinearTable0nSequenceStructure*/
#inc1ude<stdio.h>
#include<ma11oc.h>
#include<stdlib.h>
/*--page10ontextbook-——*/
#defineTRUE1
#defineFALSE0
#defineOK1
#defineERROR0
#defineINFEASTABLE-1
#defineOVERFLOW-2
typedefintstatus;
typedefintElemType;//数据元素类型定义
ooo/*page22ontextbook--*/
#defineLISTJNIT_SIZE100
#defineLISTINCREMENT10
typedefstruct{//顺序表(顺序结构)的定义
。ElemType*e1em;
intlength;
intlistsize;
}SqList;
/*page19ontextbook*/
statusIntiaList(SqList&L);
statusDestroyList(SqList*L);
statusCiearList(SqList&L);
statusListEmpty(SqListL);
intListLength(SqListL);
statusGetElem(SqListL,inti,ElemType&e);
intLocateElem(SqListL,ElemTypee);〃简化过
statusPriorElem(SqListL,ElemTypecue,E1emType*pre);
statusNextElem(SqListL,E1emTypecue,ElemType*next);
statusListlnsert(SqList*L,inti,ElemTypee);
statusListDelete(SqList*L,inti,E1emType*e);
statusListTrabverse(SqListL);〃简化过
ElemTypee;
*/
voidmain(void){
SqListL;
“ntop=1,e,cue,pre,next,m;
while(op){
gsystem("cls");
。叩rintf(”\n\n");
。printf(nMenufbrLinearTableOnSequenceStructure
\n“);
6printf("-——————\n");
oprintf(M1%IntiaList7.LocateElem\nn);
printf(n2.DestroyList8.PriorElem\nn);
printf(u3.C1earList9.NextE1em\
nM);
ooprintf("4.ListEmpty10.ListInsert\nn);
eprintf(n5ListLength11.ListDelete\nn);
oprintf("6.GetElem12.ListTrabverse\n");
。printf("0».Exit\n");
°printf(n———--―—---——\n");
叩rintf("请选择你的操作[0-12]:");
。scanf(n%d”,&op);
®switch(op)
(
。。case1:
//printf("\n■一—IntiaList功能待实现!\nH);
一(IntiaList(L)==OK)printf("线性表创建成功!\n");
。elseprintf("线性表创建失败!\n”);
o^getchar();getchar();
sbreak;
&case2:
^//printf(n\n——DestroyList功能待实现!\nn);
。if(DestroyList(&L)==OK)printf("线性表销毁成功!\n”);
。eIseprintf("线性表销毁失败!'n");
ggetchar();getchar();
sbreak;
®case3:
W/printf("\n——C1earList功能待实现!\n”);
“if(C1earList(L)==OK)printf("线性表清空成功!\n”);
gelseprintf("线性表清空失败!\nn);
ooogetchar();getchar();
。®break;
case4:
00//printf(H\n——ListEmpty功能待实现!\n");
“if(ListEmpty(L)==OK)printf("线性表已清空!\n”);
“eelseprintf(M线性表未清空!\n“);
。®getchar();getchar();
o^break;
。case5:
o“/printf("\n--—・ListLength功能待实现!\nu);
printf("线性表长度为%d\nListLength(L));
。getchar();getchar();
break;
8case6:
”//printf("\n---GetElem功能待实现!\n”);
^inti;
?叩rintf("请输入要查询的序数:");
“scanf("%d”,&i);
gif(GetElem(L,i,e)==0K)printf(”表中第%d个数据为%小口”,i,
e);
elseprintf("查询失败!\n");
getchar();getchar();
^break;
case7:
//printf(n\n-LocateElem功能待实现!\n”);
printf("请输入要查询的数据:\n");
scanf(n%dH,&e);
8m=LocateE1em(L,e);
if(m!=ERROR)
000
叩rintf("L中第一个与查询数据相等的数据的位序为%d\nm);
«<>else
。。printf(H这样的数据元素不存在!\n”);
。getchar();getchar();
力reak;
。。case8:
叩rintf("请输入要查询的元素:”);
。scanf(H%d&cue);
Af(PriorElem(L,cue,&pre)==OK)printf("前驱为%d\n”,pre);
8elseprintf("无此前驱\nn);
8getchar();getchar();
。break;
case9:
printf("请输入要查询的元素:”);
空canf("%d",&cue);
。if(NextE1em(L,cue,&next)==OK)printf(n后驱为%d\n”,
next);
elseprin1」无此后驱\11");
80getchar();getchar();
由reak;
。case10:
。叩rintf("请输入i:n);
。^scanfC'%d",&i);
egprintf("请输入e:M);
“scanf("%d",&e);
。if(Listlnsert(&L,i,e)==OK)printf("线性表插入成功\n");
e1seprintf("线性表插入失败\n");
。getchar();getchar();
3break;
。case11:
“printf("请输入要删除的元素的序列:”);
08scanf(n%d”,&i);
Mf(ListDelete(&L,i,&e)==OK)printf("元素删除成功\n”);
eIseprintf(n元素删除失败\n”);
o唱etchar();getchar();
3dbreak;
gcase12:
e//printf(M\n-——ListTrabverse功能待实现!\n”);
if(!ListTrabverse(L))printf(”线性表是空表!\n");
®getchar();getchar();
ebreak;
8case0:
break;
g}〃endofswitch
}//endofwhile
oprintf("欢迎下次再使用本系统!\n");
}//endofmain()
/*--—page23ontextbook————*/
statusIntiaList(SqList&L)
L.e1em=(E1emType*)ma11oc(L1ST_INIT_SIZE*sizeof
(E1emType));
oif(!L.e1em)exit(OVERFLOW);
L.length=0;
oL.listsize=LIST_INIT_SIZE;
«»returnOK;
)
statusDestroyList(SqList*L)
(
ofree(L—>e1em);
L->elem=NULL;
^returnOK;
)
statusC1earList(SqList&L)
(
1.length=0;
returnOK;
statusListEmpty(SqListL)
“f(L.1ength==0)
returnTRUE;
oeIse
<>returnERROR;
)
}//判断表空
intListLength(SqListL)
(
returnL.1ength;
)
statusGetE1em(SqListL,inti,E1emType&e)
(
»e=*(L.elem+i-1);
»returne;
}
intLocateElem(SqListL,E1emTypee)
(
“ntk=1;
♦while(*L.e1em!=e)
°(
。L.elem++;
k++;
if(k>L.length)
returnERROR;
returnk;
)
statusPriorElem(SqListL,ElemTypecue,ElemType*pre)
(
“nti;
for(i=1;i<L.1istsize;i++)
(
(L.elem[i]==cue)
6{
8*pre=(int)L.e1em[i-1];
6returnOK;
8}
)
returnFALSE;
}
statusNextElem(SqListL,ElemTypecue,E1emType*next)
(
。intm;
©for(m=0;m<L.listsize-1;m++)
。if(L.elem[m]==cue)
80*next=(int)L.elem[m+1];
8returnOK;
)
)
^returnFALSE;
)
statusListInsert(SqList*L,inti,E1emTypee)
(
oElemType*nw,*t,*p;
if(!L->elem)returnERROR;
oif(i<1||i>L->length+l)returnERR0R;
。if(L->length>=L->listsize)
。{
»nw=(ElemType*)realloc(L->elem,(L—>1istsize+LISTIN
CREMENT)*sizeof(ElemType));
。if(!nw)retumERROR;
0L->elem=nw;
oL->listsize+=LISTINCREMENT;
)
4=&(L->elemLi-1]);
©for(p=&(L—>elem[L->length-11);p>=t;p—)
(
b*(p+1)=*P;
0)
0*t=e;
++L—>length;
^returnOK;
}
statusListDelete(SqList*L,inti,ElemType*e)
(
•ElemType*t,*p;
if(i<1I|i>L—>1ength|I!L->e1em)returnERROR;
叩=&(L->e1em[i-1]);
e=p;
“二&(L—>e1em[L->length-1]);
ofor(p++;pv=t;++p)
8*(p-1)=*p;
--L->1ength;
returnOK;
)
statusListTrabverse(SqListL)
{
,inti;
printf(”\n——al1elements—■
—\n");
for(i=0;i<L.length;i++)printf("%d",L.elem[_i]);
printf(u\n——---end----\nH);
retumL.1ength;
)
1.3.2系统测试
表1一1线性表算法测试用例表
测试用例程序输入理论结果运行结果
用例11线性表创建成功线性懒器作皿
用例22线性表销毁成功卜疆螂作
用例3线性表清空成功适选择便的操作[歹12]:3
3怦性表清空成功!
F_______________________________1
用例44线性表已清空
遣选!至你的操作
线性袤已清空!
用例55线性表长度为0谓选择你的操作[0~121:5
线性袤长度为。
用例66表中第1个数据为1
翻请翻选择你球的操嬴作1
表中第一个与查询数据相等的道选择侵的盘作■12】:7
用例77,青输入要查询的数据,
1中第一个与查询数据檐的故据的位序为1
数据的位序为1
前驱为
用例885L4请选操你的操作]:8
馆输入要查曾的元素:2
单I为5
用例99后驱为1
请选择你的提隹[0~12「9
道输△要查询的元象2
后驱为工
用例1010线性表插入成功清欠选择你的操作[0~123:10
礴入e;9
线程表插入成功
用例1111元素删除成功请选择你的操作[。~12]:11
请输人要剧除的元素的用如1
元差躺除成功
用例1212521请选择你的操作【。~12]:12
allelenents
521
end
1.4实验小结
这是第一次数据结构的实验,实验完毕期间恰逢离散和复变的考试,复习与
实验一起进行让我压力不小。好在老师有针对性的在课堂上指点了很多关键点,
让我的实验顺利进行。本次实验加深了我对*L和&L的理解,代码中仍有不尽如
人意的地方,相信以后会做的越来越好。
2基于链式实现线性表的基本运算
2.1问题描述
。通过实验达成:(1)加深对线性表的概念、基本运算的理解;(2)纯熟掌握线性
表的逻辑结构与物理结构的关系;(3)物理结构采用带表头结点的单链表,纯熟
掌握线性表基本运算的实现。
2.2线性表演示系统设计
2.2.1系统总体设计
本系统提供一个链式存储的线性表。
该演示系统提供的操作有:表的初始化、销毁、清空、判空,求表长、获取
数据元素、查找数据元素、获得前驱、获得后继、创建线性表、插入数据元素、
删除数据元素、表的遍历。
在程序中实现消息解决,涉及数据的输入和输出,程序的退出。
2.2.2有关常量和类型定义
数据元素类型的定义:
typedefintstatus;
typedefintElemType;
有关常量的定义:
#defineTRUE1
#defineFALSE0
#defineOK1
#defineERROR0
#defineINFEASTABLE-1
#defineOVERFLOW-2
#defineLIST_INIT_SIZE100
#defineLISTINCREMENT10
2.2.3算法设计
(1)InitaList(&L)
。操作结果:构造一个空的单链表。
(2)DestroyList(&L)
初始条件:单链表L已存在。
操作结果:销毁单链表L。
(3)ClearList(&L)
初始条件:单链表L已存在。
操作结果:将L重置为空单链表。
(4)ListEmpty(L)
初始条件:单链表L已存在。
。操作结果:若L为空单链表,则返回TRUE,否则返回FALSE.
(5)ListLength(L)
初始条件:单链表已存在。
。操作结果:返回L中数据元素的个数。
(6)GetElem(L,i,&e)
。初始条件:单链表已存在,iWiWListLength(L)。
。操作结果:用e返回L中第i个结点的数据元素值。
(7)LocateElem(L,e,compare())
初始条件:单链表已存在。
。操作结果:返回L中第1个与e满足关系compare()的数据元素结点的指
。。。针,若这样的数据元素不存在,则返回值为NULL。
(8)PriorElem(L,cur_e,&pre_e)
初始条件:单链表L已存在。
。操作结果:若cur_e是L的数据元素,且不是第一个,则用pre_e返回它的
。前驱,否则操作失败,pre_e无定义。
(9)NextElem(L,cur_e,&next_e)
初始条件:单链表L已存在。
。操作结果:若cur_e是L的数据元素,且不是最后一个,则用next_e返回它
。。8的后继,否则操作失败,next_e无定义。
(10)ListInsert(&L,i,e)
。初始条件:单链表L已存在且非空,iWiWListLength(L)+lo
操作结果:在L的第i个结点之前插入新数据元素e的结点。
(ll)ListDe1ete(&L,i,&e)
初始条件:单链表L已存在且非空,1WiWListLength(L)。
。操作结果:删除L第i个数据元素的结点,用e返回其结点数据元素的值。
(12)ListTraverse(L,visit())
初始条件:单链表L已存在。
。操作结果:依次对L的每个数据元素调用函数visit()。一旦调用失败,则操
88作失败。
2.3线性表演示系统实现与测试
2.3.1系统实现
编程环境为VisualStudio2023,程序清单如下:
#define_CRT_SECURE_NO_WARNINGS
/*LinearTableOnSequeneeStructure*/
#inc1ude<stdio.h>
#include<malloc.h>
#include<stdlib.h>
/*--page10ontextbook——一一一*/
#defineTRUE1
#defineFALSEO
#defineOK1
#defineERROR0
#defineINFEASTABLE-1
#defineOVERFLOW-2
typedefintstatus;
typedefintElemType;//数据元素类型定义
oo/*——---page22ontextbook—*/
#defineLIST_INIT_SIZE100
#defineLISTINCREMENT10
typedefstructListNode{//顺序表(顺序结构)的定义
ElemTypedata;
structListNode*next;
}ListNode,*pListNode;
inte;
ListNodeL;
pListNodepL=&L;
statusIntiaList(pListNode&Lp){
eLp=(pListNode)ma11oc(sizeof(ListNode));
Lp->data=0;
©Lp->nextNULL;
pL=Lp;
returnOK;
}
statusDestroyList(pListNode&Lp){
if(!Lp)returnERROR;
Lp—>data=0;
if(Lp->next==NULL)
。{
ofree(Lp->next);
。free(Lp);
)
吒1se
。{
。DestroyList(Lp—>next);
Lp->next=NULL;
efree(Lp);
}
return0K;
)
statusC1earList(pListNode&Lp){
if(!Lp)returnERROR;
Lp—>data=0;
if(Lp->next==NULL)
近ee(Lp);
else
°(
eClearList(Lp—>next);
^free(Lp);
)
returnOK;
)
statusListEmpty(ListNodeL){
。if(L.data==0)
eturnTRUE;
吒Ise
8returnFALSE;
)
intListLength(ListNodeL){
returnL.data;
)
statusGetElem(ListNodeL,nti,ElemType*e)
if(i<l|Ii>L.data)
ereturnERROR;
叩ListNodep=L.next;
。while(-i)
p=p->next;
o}
°(*e)=p->data;
©returnOK;
statuscompare(ElemTypee,ElemTypef)
(
oif(f==e)returnTRUE;
oelsereturnFALSE;
)
statusLocateE1em(ListNodeL,ElemTypeestatus(*compa
rep)(E1emTypee,ElemTypef))
(
if(L.next==NULL)
greturnERROR;
pListNodep=L.next;
。inti=1;
while(p)
»if((*comparep)(e,p->data))
returni;
®else
°i++;
eP-p->next;
00|
°)
oreturn0;
)
statusPriorElem(ListNodeL,ElemTypecur_e,E1emType*pre
e)
(
^»if(L.data==0)
returnERROR;
if(L.next—>data=cur_e)
returnERROR;
叩ListNodepri_p=L.next,cur_p=L.next->next;
while((cur_p->data!=cur_e)&&cur_p)
b{
opri—p=cur_p;
8cur_p=cur_p->next;
)
if(cur_p->data==cur_e)
{
e*pre_e=pri_p->data;
returnOK;
0)
®elsereturnERROR;
statusNextE1em(ListNodeL,ElemTypecur_e,E1emType*next
e)
(
if(L.next==0)
oreturnERROR;
pListNodep=L.next;
while(p->data!=cur_e&&p->next)
。p=p->next;
if(!(P->next))returnERROR;
®else//if(p->data==cur_e)
{
g*next_e=p->next->data;
returnOK;
statusListlnsert(pListNodeLp,inti,E1emTypee){
“f(i<l||i>Lp->data+1)
。returnERROR;
叩ListNodep=(pListNode)malloc(sizeof(ListNode));
if(Lp->data==0){
Lp—>next=p;
p->data=e;
。叩―>next=NULL;
。Lp->data=1;
returnOK;
°)
pListNodepl=Lp->next;
whi1e(pl->next)pl=pl->next;
p1—>next=p;
叩,data=e;
p->next=NULL;
Lp->data++;
retumOK;
)
statusListDe1ete(pListNodeLp,inti,ElemType*e)
(
if(Lp->data)
。{
•if(iV1I|i>Lp->data)
。«>returnERROR;
8PListNodep1=Lp,p2=Lp->next;
^intj=1;
owhile(p2&&j<i)
{
。。p1二p2;
。。叩2=p2->next;
j++;
»}
pl->next=p2->next;
*ep2->data;
。Lp->data—;
free(p2);
8returnOK;
}
o「eturnERROR;
)
voidvisit(E1emTypee,inti){
printf("对第%d个元素调用visit函数:元素值为%d\n\n",i+1,e);
)
statusListTrabverse(ListNodeL,void(*visitp)(ElemTypee,i
nti))
(
if(!L.data)returnERROR;
。pListNodep=L.next;
inti=0;
叩rintf("\n——对所有元素调用函数visit-----------
-\n");
°while(p)/〃依次对每个元素调用visit函数
(
g(*visitp)(p—>data,i++);
op=p->next;
)
oprintf("\n---end---————\n");
retumOK;
)
/*_-_—_____一—一__—__—_一一__—_———__—,-*/
voidmain(void){
ointop=1,e,cue,pre,next,m;
awhile(op){
system(ncIsn);
oprintf(M\n\nn);
printf(uMenuforLinearTableOnSequenceStructu
re\nu);
printf(n——————\n");
sprintf(n。1.IntiaList7.LocateElem\nn);
sprintf(“。2.DestroyList8.PriorE1em\n");
printf(n3.CiearList9.NextElem\nn);
printf(M4.ListEmpty10.ListInsert\n");
oprintf("5ListLength11.ListDelete\nn);
gprintf("36.GetElem12.ListTrabverse\n");
。printf(M。0.Exit\nn);
■\nn);
printf("请选择你的操作[0~12]:");
seanf("%d",&op);
^switch(op)
gcase1:
g//printf("\n——IntiaList功能待实现!\n”);
if(IntiaList(pL)==OK)printf("线性表创建成功!
\n");
。eIseprintf(H线性表创建失败!\nn);
。getchar();getchar();
gbreak;
ocase2:
g//printf("\n--DestroyList功能待实现!\n”);
oooif(DestroyList(pL)==OK)printf(H线性表销毁成功!\n“);
匕elseprintff线性表销毁失败!\n”);
。<>getchar();getchar();
sbreak;
^case3:
n
ooo//printfC\n--CiearList功能待实现!\n);
if(ClearList(pL)==OK)printf("线性表清空成功!\n");
3e1seprintf("线性表清空失败!\nn);
。getchar();getchar();
“break;
case4:
。//printf(H\n----ListEmpty功能待实现!\n”);
if(ListEmpty(L)==OK)printf("线性表已清空!\n”);
。elseprintf("线性表未清空!\n”);
“getchar();getchar();
3break;
ocase5:
00//printf("\n-一一-ListLength功能待实现!\n");
。。printf("线性表长度为%d\n",ListLength(L));
“getchar();getchar();
。break;
“case6:
。//printf("\n--GetElem功能待实现!\n");
。inti;
。printf("请输入要查询的序数:");
“scanf("%d",&i);
“if(GetElem(L,i,&e)==0K)printf("表中第%d个数据为%
d\n",i,e);
ooelseprintf("查询失败!\n");
ggetchar();getchar();
break;
»case7:
ooo//printf("\n-LocateElem功能待实现!\n");
printf("请输入要查询的数据:\n");
。scanf("%d",&e);
。=LocateElem(L,e,compare);
。if(m!=ERROR)
0{
3叩rintf("L中第一个与查询数据相等的数据的位序为%d\n",m);
»}
e1se
。I
如printf("这样的数据元素不存在!\n");
00
ogetchar();getchar();
8bbreak;
case8:
,叩rintf("请输入要查询的元素:");
scanf('*%d”,&cue);
“if(Prior
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 考研复习-风景园林基础考研试题带答案详解(完整版)
- 2024年山东华兴机械集团有限责任公司人员招聘笔试备考题库附答案详解(基础题)
- 2024年滨州新能源集团有限责任公司及权属公司公开招聘工作人员递补笔试备考题库附答案详解(满分必刷)
- 2023国家能源投资集团有限责任公司第一批社会招聘笔试备考试题及答案详解(有一套)
- 2025年Z世代消费趋势与品牌创新营销模式案例研究报告
- 重庆国际医院管道技术改造施工组织设计
- 2025年K2学校STEM课程实施效果对学生未来领导力的提升评估报告
- 2026年高考物理大一轮复习讲义 第十六章 第85课时 原子核
- 统编版三年级语文下册《第一单元习作:我的植物朋友》课件
- 电仪行业质控策略
- 《树欲静而风不止》课件
- 儿童绘本故事《蚂蚁搬家》
- 物联网技术及应用基础(第2版) -电子教案
- 河北省保定市(2024年-2025年小学六年级语文)统编版小升初真题(下学期)试卷及答案
- 水污染控制工程知到智慧树章节测试课后答案2024年秋黑龙江科技大学
- 【MOOC】宇宙简史-南京大学 中国大学慕课MOOC答案
- 【MOOC】敢创会创-大学生创新创业实务-南京信息工程大学 中国大学慕课MOOC答案
- 2024年国开电大行政领导学形成性考试
- 对乳腺癌患者的心理护理
- 北师大版三年级数学下册复习计划
- 2025年公务员考试《行测》模拟题及答案(详细解析)
评论
0/150
提交评论