数据结构作业答案大连理工大学Word文档下载推荐.docx

上传人:b****3 文档编号:15198343 上传时间:2022-10-28 格式:DOCX 页数:15 大小:110.69KB
下载 相关 举报
数据结构作业答案大连理工大学Word文档下载推荐.docx_第1页
第1页 / 共15页
数据结构作业答案大连理工大学Word文档下载推荐.docx_第2页
第2页 / 共15页
数据结构作业答案大连理工大学Word文档下载推荐.docx_第3页
第3页 / 共15页
数据结构作业答案大连理工大学Word文档下载推荐.docx_第4页
第4页 / 共15页
数据结构作业答案大连理工大学Word文档下载推荐.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

数据结构作业答案大连理工大学Word文档下载推荐.docx

《数据结构作业答案大连理工大学Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构作业答案大连理工大学Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。

数据结构作业答案大连理工大学Word文档下载推荐.docx

3.查找\n"

4.插入"

5.删除"

6.显示\n"

7.删除大于mink且小于maxk的元素值"

8.就地升序排序\n"

9.就地逆置"

a.有序表插入"

q.退出\n"

\n请选择操作:

"

fflush(stdin);

scanf("

%c"

&

choice);

switch(choice)

{

case'

1'

:

printf("

请输入单链表中结点个数:

scanf("

%d"

n);

Create_L2(L,n);

break;

2'

请输入元素位序:

i);

GetElem_L(L,i,e);

printf("

元素值为:

%d\n"

e);

3'

请输入要查找的元素:

scanf("

e);

if(dlbcz(L,e))

printf("

查找成功!

else

查找失败。

4'

请输入插入位置:

请输入要插入的元素:

scanf("

if(ListInsert_L(L,i,e))

插入成功!

单链表为:

插入失败。

5'

请输入删除位置:

if(ListDelete_L(L,i,e))

删除成功!

删除失败。

\n"

6'

\n单链表为:

xsList(L);

7'

请输入mink和maxk:

%d,%d"

mink,&

maxk);

DelList(L,mink,maxk);

8'

sh_sort(L);

break;

9'

nizhi(L);

a'

请输入在有序表中插入的元素值:

yxcharu(L,e);

}

}

}

 

作业2.栈、队列、数组

非编程作业:

1.若进栈序列为ABCD,请写出全部可能的出栈序列和不可能的出栈序列。

参考答案:

可能的出栈序列:

(14种)

dcbacdbabacdcbdaadcbcbadbdcaacdbbcdaacbdbcadabdcbadcabcd

不可能的出栈序列:

(10种)

dbcadbacdabcdacbdcabcabdcdabbdaccadbadbc

2.简要说明循环队列如何判断队满和队空

当牺牲一个存储结点,约定以“队列头指针在队列尾指针的下一位置(指环状的下一个位置)上”作为队列“满”状态的标志时,循环队列判断队满的条件为:

(rear+1)%MaxQsize==front;

判断队空的条件为:

front==rear。

3.设A为n阶对称矩阵,采用压缩存储存放于一维数组F[n(n+1)/2]中(从F[0]开始存放),请分别给出存放上三角阵时任一矩阵元素aij(1≤i,j≤n)的地址计算公式和存放下三角阵时任一矩阵元素aij(1≤i,j≤n)的地址计算公式。

存放上三角阵时,任一矩阵元素aij(1≤i,j≤n)的地址计算公式为:

存放下三角阵时,任一矩阵元素aij(1≤i,j≤n)的地址计算公式为:

4.写出下面稀疏矩阵的三元组顺序表和十字链表表示。

编程作业

栈采用顺序栈存储,试设计算法实现将表达式转换成后缀表达式输出。

例如,输入表达式:

a+b/c-(d*e+f)*g

输出其后缀表达式:

abc/+de*f+g*-

#defineOVERFLOW-2

#defineERROR0

#defineSTACK_INIT_SIZE100

#defineSTACKINCREMENT10

typedefcharSElemType;

typedefcharstring[80];

typedefstruct

{SElemType*base;

SElemType*top;

intstacksize;

}SqStack;

StatusInitStack(SqStack&

S)

{=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));

if(!

exit(OVERFLOW);

=;

=STACK_INIT_SIZE;

return(OK);

StatusClearStack(SqStack&

S)

{=(SElemType*)realloc,STACK_INIT_SIZE*sizeof(SElemType));

voidDestroyStack(SqStack&

{=0;

iffree;

==NULL;

StatusStackEmpty(SqStackS)

{if==

returntrue;

else

returnfalse;

SElemTypeGetTop(SqStackS)

{SElemTypee;

if>

e=*;

returne;

StatusPush(SqStack&

S,SElemTypee)

{

if树

1.请分别画出具有3个结点的树和3个结点的二叉树的所有不同形态。

具有3个结点的树:

具有3个结点的二叉树:

2.已知二叉树的先序遍历序列是EABDCFHGIKJ,中序遍历序列是ABCDEFGHIJK,请构造二叉树,并写出其层次遍历序列和后序遍历序列。

E

A

C

B

D

I

J

H

F

G

K

层次:

EAFBHDGICKJ

后序---CDBAGJKIHFE

3.将下图所示的森林转换成一棵二叉树。

L

转换成的二叉树为:

4.将下图所示的二叉树还原成树或森林。

转换为森林:

M

N

5.假设用于通信的电文由7个字母组成{A,B,C,D,E,F,G},字母在电文中出现的频率分别为、、、、、、。

试为这7个字母设计哈夫曼编码,并计算其带权路径长度WPL。

哈夫曼树为:

WPL=4*++3*+++2*+=

A:

101B:

001C:

100D:

0001E:

11F:

0000G:

01

二叉树采用二叉链表存储,试设计算法实现:

1.CreateBT(BiTree&

T):

从键盘输入二叉树的先序遍历序列字符串(以”#”代表空结点),建立其二叉链表;

如输入:

AB#D##CE#F###则建立如下图所示二叉树的二叉链表

2.ExchangeBT(BiTreeT):

设计递归算法实现二叉树中所有结点的左右孩子交换;

3.CountLeaf(BiTreeT,TElemTypex,int&

count):

统计以值为x的结点为根的子树中叶子结点的数目;

4.DispBiTree(BiTreeT,intlevel):

按树状打印二叉树。

打印得到:

#C

###F

##E

##D

#B

提示:

对于根为T,层次为level的子树:

1打印其下一层(level+1层)右子树;

2打印根结点;

3打印其下一层(level+1层)左子树;

*结点左边的’#’个数为其层次数*

typedefstructBiTNode{

chardata;

structBiTNode*lchild,*rchild;

}BiTNode,*BiTree;

非编程作业:

1.已知带权有向图如图所示,画出该图的邻接矩阵存储结构。

2.

2

aa

f

b

d

g

c

h

e

6

9

7

8

3

5

1

30

24

21

3.无向图邻接表存储结构如图所示:

(1)画出该无向图;

(2)写出在该邻接表上,从顶点1出发所得到的深度优先遍历(DFS)和广度优先遍历(BFS)序列。

4

DFS:

1,3,4,7,8,6,5,2

BFS:

1,3,2,4,7,6,5,8

作业5.查找、排序

1.对下标为1~9的有序表进行折半查找,画出折半查找的判定树;

并计算在等概率情况下查找成功的平均查找长度ASL。

2.设有关键字

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

当前位置:首页 > PPT模板 > 中国风

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

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