华南农业大学数据结构实验答案.docx

上传人:b****5 文档编号:11897443 上传时间:2023-04-08 格式:DOCX 页数:27 大小:19.70KB
下载 相关 举报
华南农业大学数据结构实验答案.docx_第1页
第1页 / 共27页
华南农业大学数据结构实验答案.docx_第2页
第2页 / 共27页
华南农业大学数据结构实验答案.docx_第3页
第3页 / 共27页
华南农业大学数据结构实验答案.docx_第4页
第4页 / 共27页
华南农业大学数据结构实验答案.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

华南农业大学数据结构实验答案.docx

《华南农业大学数据结构实验答案.docx》由会员分享,可在线阅读,更多相关《华南农业大学数据结构实验答案.docx(27页珍藏版)》请在冰豆网上搜索。

华南农业大学数据结构实验答案.docx

华南农业大学数据结构实验答案

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)

{

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1