3已知一株非空二元树,其先根与中根遍历的结果为:
先根:ABCDEFGHI
中根:CBEDAGFHI
根据先根和中根遍历结果,将此二元树构造出来。
4分析下列程序的运行时间:
A) void mystery (int n)
{int I,j,k;
for (I=1;I<n;I++)
for (j=I+1;j<=n;j++)
for (k=1;k<=j;k++)
{some statement requiring O(1) time;}
}
B) void podd (int n)
{int I,j,x,y;
for (I=1;I<=n;I++)
if (odd (i) )
{for j=I;j<=n;j++}
x=x+1;
for (j=1;j<=I;j++)
y=y+1;
}
}
5已知数学表达式是(3+b)sin(x+5)-a/x2,求该表达式的波兰表示法的前缀和后缀表示(要求给出过程)
三 实现下列算法
1 在指针实现的线性表L中,实现在线性表L中删除关键字为x的结点。
2 在线索二元树中,由结点P求其先根顺序的后继。
3 在二元查找树F中,实现插入记录R。
四 对下面的带权连通无向图,用Prim(普里姆)算法,构造一株最小生成树。画出构造过程的每一步。
五 设要分类的数据存放在数组A
3 1 4 1 5 9 2 6 5 3
中,要进行堆分类,首先得为其建立一个初始堆,试画出初始建设堆过程中,二元树的变化和数组A的变化。
tank1734684@163.com请注明账号
3 已知一株非空二元树,其先根与中根遍历的结果为:
先根:ABCDEFGHI
中跟:CBEDAGFHI
将此二元树构造出来。
答: A
/ \
B F
/ \ / \
C D G H
/ \
I E
4.分析下列程序的运行时间:
A) void mystery(int n)
{int i, j, k;
for(i=1; i<n; i++)
for(j=i+1; j<=n; j++)
for(k=1; k<=j; k++)
{some statement requiring O(1) time;}
}
我的答案是 n3 不过不是很确定
B)void podd(int n)
{int I, j, x, y;
for(I=1; I<=n; I++)
if( odd(I ) )
{for(j=I; j<=n; j++)
x=x+1;
for(j=1; j<=I; j++)
y=y+1;
}
}
n2 也不是很确定
5 已知数学表达式是(3+b)sin(x+5)—a/x2,求该表达式的波兰表示法的前缀和后缀表示(要求给出过程)。
表达式对应的二叉树为
所以对应的前缀为:-*+3bsin+x5/a*xx
后缀为:3b+x5+sin*axx*/-
三 实现下列算法
在指针实现的线性表L中,实现在线性表L中删除关键字为x的结点。
答:
int visited[n];
void dfs(Graph g, int i)
{edgeNode *t;
printf(“%4d”,i);
visited[i]=1;
t=g[i];
while(t!=NULL) {
if (visited[t->vno]= =0)
dfs(g,t->vno);
t=t->next;
}
}
在线索二元树中,由结点P求其中根顺序的后继。
答:
typedef enum {lLINK ,THREAD} PointerTag ; // LINK==0; 指针,
THREAD==1;线索
typedef struct BinThrNode {
TElemType data;
struct BinThrNode *lchilid, *rchild;
PointerTag ltag, rtag;
} BinThrNode,* BinThrTree;
中序遍历线索二叉树
p所指结点前驱的求法:
当p->ltag==THREAD时,前驱为p->lchild;
当p->ltag==LINK时,前驱为p->lchild的最右下方结点。
在二元查找树F中,实现插入记录R。
答:
Void INSERT(records R, BST &F)
{if(F= =NULL)
{F=new celltype;
F-> data=R;
F->lchild=NULL;
F->rchild=NULL;}
else if(R,key<F->data.key)
INSERT(R,F->lchild);
else if(R,key>F->data.key)
INSERT(R,F->rchild);
}
四、对下面的带权连通无向图,用Prim(普里姆)算法,构造一株最小生成树。画出构造过程的每一步。(12分)
五 设要分类的数据存放在数组A
3 1 4 1 5 9 2 6 5 3
中,要进行堆分类,首先得为其建立一个初始堆,试画出初始建设堆过程中,二元树的变化和数组A的变化。
数据结构与算法,这道难题怎么做啊,求指教
答案:数据的逻辑结构在计算机中的表示。 12. 数据的逻辑结构是指?答案:反映数据元素之间逻辑关系的数据结构。13. 根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分为? 答案:线性结构和非线性结构。14. 下列数据结构具有记忆功能的是(C) A.队列 B.循环队列 C.栈 D.顺序...
数据结构题目 趴求答案啊啊啊啊 ,,求好心人帮助!!!另外因为是考题,所 ...
数据结构题目 趴求答案啊啊啊啊 ,,求好心人帮助!!!另外因为是考题,所以可能有一些价值的,求达人助 10 填空1 、___表示算法执行过程中需要存储空间的程度。 2 、对于频繁进行插入和删除的线性表,宜采用___存储结构。 3 、已知顺序表中一个元素的存储位置是 x,每个元素占 c个字节,则其后续元素的存储位置...
数据结构与算法试题,高分,求答案啊
四、对下面的带权连通无向图,用Prim(普里姆)算法,构造一株最小生成树。画出构造过程的每一步。(12分)五 设要分类的数据存放在数组A3 1 4 1 5 9 2 6 5 3中,要进行堆分类,首先得为其建立一个初始堆,试画出初始建设堆过程中,二元树的变化和数组A的变化。
高分求数据结构与算法答案
1-5 ACDCC 6.你写的我分不清,答案是2的(i-1)次方7-10 CCCB 11-15 BDA()C 16-18 CDA 46-50 CCACB 14题 B_树 是不是biinary tree(二叉树)啊?,没说清楚,没法回答。就一题了,估计你自己也能解决,这些题都很基础,不难。
数据结构与算法选择题!
第一题,DFS(深度优先遍历)是一个递归算法,在遍历的过程中,先访问的点被压入栈底(栈是先进后出),再说:拓扑有序是指如果点U到点V有一条弧,则在拓扑序列中U一定在V之前。深度优先算法搜索路径恰恰是一条弧,栈的输出是从最后一个被访问点开始输出,最后一个输出的点是第一个被访问的点。
高分急求!!!数据结构与算法试题!!!
5.θ(n),θ(lg n),θ(n lg n)6.直接定址法,随机法 7.链表 8.根节点0,叶节点4,9,10,7,8,最大度的是0,节点0的后代是1,2,3 9.空的条件栈顶位置是m-1.满的条件是栈顶位置是-1 10,数据结构和抽象数据类型关系:a.“数据结构”定义为一个二元组(D,S),即两个集合...
数据结构试题,求解答。(很重要,不会就别乱回答了。会追加分的,万分感谢...
5、我知道的快速排序版本就有3个,虽然算法几乎一摸一样的,不过对作支点的那个数的位置的互换略有不同,那么每轮的结果自然不一样,我好不容易找到原版教材的算法,是机械工业出版社的《数据结构、算法与应用 ——c++语言描述》版,但愿是一样的算法 1)、以46为支点 :78,29 ——46,25,29...
《数据结构》复习题 答案 高分求救!
二、填空题(每题2分,共20分)1、在单链表中,欲删除某一指定结点时,必须找到该结点的 结点。 前驱结点 2、 和 是操作点受限的线性表。 栈和队列 3、二分查找的条件是 。 有序顺序存储结构 4、深度为K的二叉树中结点总数最多为 。 2^k-1 5、在有n(n>0)个结点的二叉链表中,空链...
数据结构高手进,帮忙答下题
一、1、B 2、B 3、 ?4、C 《 A的深度为1,B的深度为3,D的深度为3》5、C 6、B?7、C 8、B 直接插入排序 :n个不同的数据元素,最多需要比较n*(n-1)\/2 9、C 10、A 二、1.线性结构 ,非线性结构 。2. 352 < 100+ (6*20+6)*2 > , 232 ...
求答案啊 - - 数据结构与算法习题
10.A B C D \/ - E * + 11.b 12.c 13.b 14.c 15.c(不确定)16d 17.c 18.c 19a 20b 21.c 22A B C D \/ + E * -(跟10差不多)23n 24y 25n 26y 27y 28(没看懂)29y 30n 31n ...