华南农业大学数据结构实验答案.docx
- 文档编号:6715569
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:27
- 大小:19.70KB
华南农业大学数据结构实验答案.docx
《华南农业大学数据结构实验答案.docx》由会员分享,可在线阅读,更多相关《华南农业大学数据结构实验答案.docx(27页珍藏版)》请在冰点文库上搜索。
华南农业大学数据结构实验答案
8576顺序线性表的基本操作
时间限制:
1000MS内存限制:
1000K
提交次数:
9027通过次数:
2456
题型:
编程题语言:
无限制
Description
编写算法,创建初始化容量为LIST_INIT_SIZE的顺序表T,并实现插入、删除、遍历操作。
本题目给出部分代码,请补全内容。
#include<>
#include<>
#defineOK1
#defineERROR0
#defineLIST_INIT_SIZE100
#defineLISTINCREMENT10
#defineElemTypeint
typedefstruct
{
int*elem;
intlength;
intlistsize;
}SqList;
intInitList_Sq(SqList&L)
{
n");
}
while
(1)
{
printf("1:
Insertelement\n2:
Deleteelement\n3:
Loadallelements\n0:
Exit\nPleasechoose:
\n");
scanf("%d",&a);
switch(a)
{
case1:
scanf("%d%d",&i,&x);
if(_________________________)printf("InsertError!
\n");1:
Insertelement
2:
Deleteelement
3:
Loadallelements
0:
Exit
Pleasechoose:
TheElement2isSuccessfullyInserted!
1:
Insertelement
2:
Deleteelement
3:
Loadallelements
0:
Exit
Pleasechoose:
TheElement3isSuccessfullyInserted!
1:
Insertelement
2:
Deleteelement
3:
Loadallelements
0:
Exit
Pleasechoose:
TheElement3isSuccessfullyDeleted!
1:
Insertelement
2:
Deleteelement
3:
Loadallelements
0:
Exit
Pleasechoose:
TheListis:
2
1:
Insertelement
2:
Deleteelement
3:
Loadallelements
0:
Exit
Pleasechoose:
作者
yqm
解法一:
(正规解法)
#include<>
#include<>
#defineOK1
#defineERROR0
#defineLIST_INIT_SIZE100
#defineLISTINCREMENT10
#defineElemTypeint
typedefstruct
{
int*elem;
intlength;
intlistsize;
}SqList;
intInitList_Sq(SqList&L)
{
n");
}
while
(1)
{
printf("1:
Insertelement\n2:
Deleteelement\n3:
Loadallelements\n0:
Exit\nPleasechoose:
\n");
scanf("%d",&a);
switch(a)
{
case1:
scanf("%d%d",&i,&x);
if(!
ListInsert_Sq(T,i,x))printf("InsertError!
\n");n");
while
(1)
{
printf("1:
Insertelement\n2:
Deleteelement\n3:
Loadallelements\n0:
Exit\nPleasechoose:
\n");
scanf("%d",&a);
switch(a)
{
case1:
scanf("%d%d",&i,&x);
if(i<1||i>(int)()+1)printf("InsertError!
\n");n");
while
(1)
{
printf("1:
Insertelement\n2:
Deleteelement\n3:
Loadallelements\n0:
Exit\nPleasechoose:
\n");
scanf("%d",&a);
switch(a)
{
case1:
scanf("%d%d",&i,&x);
if(i<1||i>k)printf("InsertError!
\n");
.,ai,...an-1),其逆顺序表定义为A'=(an-1,...,ai,...,a1,a0)。
设计一个算法,将顺序表逆置,要求顺序表仍占用原顺序表的空间。
本题不提供代码,请同学们独立完成,所需子函数参考前面完成的内容。
输入格式
第一行:
输入顺序表的元素个数
第二行:
输入顺序表的各元素,用空格分开
输出格式
第一行:
逆置前的顺序表元素列表
第二行:
逆置后的顺序表元素列表
输入样例
10
12345678910
输出样例
TheListis:
12345678910
TheturnedListis:
10987654321
作者
yqm
解法一:
(正规解法)
#include<>
#include<>
#defineOK1
#defineERROR0
#defineLIST_INIT_SIZE100
#defineLISTINCREMENT10
#defineElemTypeint
typedefstruct
{
int*elem;
intlength;
intlistsize;
}SqList;
intInitList_Sq(SqList&L,intn)
{
n");
LoadLink_L(T);
}
while
(1)
{
printf("1:
Insertelement\n2:
Deleteelement\n3:
Loadallelements\n0:
Exit\nPleasechoose:
\n");
scanf("%d",&a);
switch(a)
{
case1:
scanf("%d%d",&i,&x);
if(___________________________)printf("InsertError!
\n");TheLinkListis:
369
1:
Insertelement
2:
Deleteelement
3:
Loadallelements
0:
Exit
Pleasechoose:
TheLinkListis:
369
1:
Insertelement
2:
Deleteelement
3:
Loadallelements
0:
Exit
Pleasechoose:
TheElement12isSuccessfullyInserted!
1:
Insertelement
2:
Deleteelement
3:
Loadallelements
0:
Exit
Pleasechoose:
TheElement3isSuccessfullyDeleted!
1:
Insertelement
2:
Deleteelement
3:
Loadallelements
0:
Exit
Pleasechoose:
TheLinkListis:
6912
1:
Insertelement
2:
Deleteelement
3:
Loadallelements
0:
Exit
Pleasechoose:
作者
yqm
解法一:
(正规解法)
#include<>
#include<>
#defineERROR0
#defineOK1
#defineElemTypeint
typedefstructLNode
{
intdata;
structLNode*next;
}LNode,*LinkList;
intCreateLink_L(LinkList&L,intn){
n");
LoadLink_L(T);
}
while
(1)
{
printf("1:
Insertelement\n2:
Deleteelement\n3:
Loadallelements\n0:
Exit\nPleasechoose:
\n");
scanf("%d",&a);
switch(a)
{
case1:
scanf("%d%d",&i,&x);
if(!
LinkInsert_L(T,i,x))printf("InsertError!
\n");n");
for(i=0;i { scanf("%d",&x); (x); } load(T); while (1) { printf("1: Insertelement\n2: Deleteelement\n3: Loadallelements\n0: Exit\nPleasechoose: \n"); scanf("%d",&a); switch(a) { case1: scanf("%d%d",&i,&x); if(i<1||i>(int)()+1)printf("InsertError! \n");n"); if(k==1)printf("TheListisempty! "); else { printf("TheLinkListis: "); for(intj=1;j } printf("\n"); while (1) { printf("1: Insertelement\n2: Deleteelement\n3: Loadallelements\n0: Exit\nPleasechoose: \n"); scanf("%d",&a); switch(a) { case1: scanf("%d%d",&i,&x); if(i<1||i>k)printf("InsertError! \n"); .,ai,...an-1),其逆线性表定义为A'=(an-1,...,ai,...,a1,a0),设计一个算法,将线性表逆置,要求线性表仍占用原线性表的空间。 本题不提供代码,请同学们独立完成,所需子函数参考之前完成的内容。 输入格式 第一行: 输入n,表示单链表的元素个数 第二行: 输入单链表的各元素,用空格分开 输出格式 第一行: 输出单链表逆置前的元素列表 第二行: 输出单链表逆置后的元素列表 输入样例 8 3297546535846175 输出样例 TheListis: 3297546535846175 TheturnedListis: 7561843565549732 作者 yqm 解法一: (正规解法) #include<> #include<> #defineERROR0 #defineOK1 #defineElemTypeint typedefstructLNode { intdata; structLNode*next; }LNode,*LinkList; intCreateLink_L(LinkList&L,intn){ n"); } while (1) { printf("1: Push\n2: Pop\n3: GettheTop\n4: ReturntheLengthoftheStack\n5: LoadtheStack\n0: Exit\nPleasechoose: \n"); scanf("%d",&a); switch(a) { case1: scanf("%d",&x); if(______________________)printf("PushError! \n");1: Push 2: Pop 3: GettheTop 4: ReturntheLengthoftheStack 5: LoadtheStack 0: Exit Pleasechoose: TheElement2isSuccessfullyPushed! 1: Push 2: Pop 3: GettheTop 4: ReturntheLengthoftheStack 5: LoadtheStack 0: Exit Pleasechoose: TheElement4isSuccessfullyPushed! 1: Push 2: Pop 3: GettheTop 4: ReturntheLengthoftheStack 5: LoadtheStack 0: Exit Pleasechoose: TheElement6isSuccessfullyPushed! 1: Push 2: Pop 3: GettheTop 4: ReturntheLengthoftheStack 5: LoadtheStack 0: Exit Pleasechoose: TheStackis: 642 1: Push 2: Pop 3: GettheTop 4: ReturntheLengthoftheStack 5: LoadtheStack 0: Exit Pleasechoose: TheTopElementis6! 1: Push 2: Pop 3: GettheTop 4: ReturntheLengthoftheStack 5: LoadtheStack 0: Exit Pleasechoose: TheLengthoftheStackis3! 1: Push 2: Pop 3: GettheTop 4: ReturntheLengthoftheStack 5: LoadtheStack 0: Exit Pleasechoose: TheElement6isSuccessfullyPoped! 1: Push 2: Pop 3: GettheTop 4: ReturntheLengthoftheStack 5: LoadtheStack 0: Exit Pleasechoose: TheStackis: 42 1: Push 2: Pop 3: GettheTop 4: ReturntheLengthoftheStack 5: LoadtheStack 0: Exit Pleasechoose: TheElement4isSuccessfullyPoped! 1: Push 2: Pop 3: GettheTop 4: ReturntheLengthoftheStack 5: LoadtheStack 0: Exit Pleasechoose: TheElement2isSuccessfullyPoped! 1: Push 2: Pop 3: GettheTop 4: ReturntheLengthoftheStack 5: LoadtheStack 0: Exit Pleasechoose: PopError! 1: Push 2: Pop 3: GettheTop 4: ReturntheLengthoftheStack 5: LoadtheStack 0: Exit Pleasechoose: 作者 yqm 解法一: (正规解法) #include<> #include<> #include<> #defineOK1 #defineERROR0 #defineSTACK_INIT_SIZE100n"); } while (1) { printf("1: Push\n2: Pop\n3: GettheTop\n4: ReturntheLengthoftheStack\n5: LoadtheStack\n0: Exit\nPleasechoose: \n"); scanf("%d",&a); switch(a) { case1: scanf("%d",&x); if(! Push(S,x))printf("PushError! \n");n"); while (1) { printf("1: Push\n2: Pop\n3: GettheTop\n4: ReturntheLengthoftheStack\n5: LoadtheStack\n0: Exit\nPleasechoose: \n"); scanf("%d",&a); switch(a) { case1: scanf("%d",&x); (x); printf("TheElement%disSuccessfullyPushed! \n",x); break; case2: if())printf("PopError! \n");inti; i=; if(______________________)printf("TheQueueisEmpty! ");n"); } while (1) { printf("1: Enter\n2: Delete\n3: GettheFront\n4: ReturntheLengthoftheQueue\n5: LoadtheQueue\n0: Exit\nPleasechoose: \n"); scanf("%d",&a); switch(a) { case1: scanf("%d",&x); if(______________________)printf("EnterError! \n");1: Enter 2: Delete 3: GettheFront 4: ReturntheLengthoftheQueue 5: LoadtheQueue 0: Exit Pleasechoose: TheElement1isSuccessfullyEntered! 1: Enter 2: Delete 3: GettheFront 4: ReturntheLengthoftheQueue 5: LoadtheQueue 0: Exit Pleasechoose: TheElement2isSuccessfullyEntered! 1: Enter 2: Delete 3: GettheFront 4: ReturntheLengthoftheQueue 5: LoadtheQueue 0: Exit Pleasechoose: TheElement3isSuccessfullyEntered! 1: Enter 2: Delete 3: GettheFront 4: ReturntheLengthoftheQueue 5: LoadtheQueue 0: Exit Pleasechoose: TheQueueis: 123 1: Enter 2: Delete 3: GettheFront 4: ReturntheLengthoftheQueue 5: LoadtheQueue 0: Exit Pleasechoose: TheElement1isSuccessfullyDeleted! 1: Enter 2: Delete 3: GettheFront 4: ReturntheLengthoftheQueue 5: LoadtheQueue 0: Exit Pleasechoose: TheHeadoftheQueueis2! 1: Enter 2: Delete 3: GettheFront 4: ReturntheLengthoftheQueue 5: LoadtheQueue 0: Exit Pleasechoose: TheQueueis: 23 1: Enter 2: Delete 3: GettheFront 4: ReturntheLengthoftheQueue 5: LoadtheQueue 0: Exit Pleasechoose: 作者 yqm 解法一: (正规解法) #include<> #include<> #include<> #defineOK1 #defineERROR0 typedefintStatus;inti; i=; if==printf("TheQueueisEmpty! ");n"); } while (1) { printf("1: Enter\n2: Delete\n3: GettheFront\n4: ReturntheLengthoftheQueue\n5: LoadtheQueue\n0: Exit\nPleasechoose: \n"); scanf("%d",&a); switch(a) { case1: scanf("%d",&x); if(! EnQueue(S,x))printf("EnterError! \n");n"); while (1) { printf("1: Enter\n2: Delete\n3: GettheFront\n4: ReturntheLengthoftheQueue\n5: LoadtheQueue\n0: Exit\nPleasechoose: \n"); scanf("%d",&a); switch(a) {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华南 农业大学 数据结构 实验 答案