数据结构北邮2005考研试题答案.doc
文本预览下载声明
选择
1 B 2 B 3 C 4 C 5 D
6 B 7 C 8 B 9 A 10 A
二、判断
对
错
错
对
对
错
错
错
错
错
三、已知一棵二叉排序树的前序遍历为EBADCKGFHJI,画出该二叉树,并给出后序遍历的结果
后序遍历:ACDBFIJHGKE
四、任意给出右图的五条拓扑排序序列
V1V3V2V4V5V6V7V8V9
V2V1V3V4 V5V6V7V8V9
V1V2 V3V4 V5V6V7V8V9
V1V2V4V3 V5V6V7V8V9
V1V2 V3V4 V6V5V8V7V9
五、算法
请将下面的选择排序算法补充完整
int Max (sqlist r, int n)
{
if (n==1)
_return 1;__
m=Max(r,n-1);
if (r[m]r[n])
_return m;__
else
_return n;__
}
void Sort(sqlist r, int n)
{
for(int i=n; i0; i-- )
{
k=Max(r, i);
r[k](( r[i]
}
}
已知带头结点的单链表有data 和next两个域,设计一个算法,将该链表中的重复元素结点删除。
void delsame(Node* Head)
{
Node *p,*q;
p = Head;
q = p-next;
while(q!=NULL q-next!=NULL)
{
if (q-data==q-next-data)
{
p-next = q-next;
delete q;
q=p-next;
}
else
{
p=q;
q=p-next;
}
}
}
设计一个算法,判断两棵以二叉链表表示的二叉树是否相等。
void IsSameTree (bitptr t1, bitptr t2 , int IsSame)
{
if (t1!=NULL t2!=NULL)
{
IsSameTree(t1-lc, t2-lc, IsSame);
if (IsSame)
IsSameTree(t1-rc, t2-rc, IsSame);
}
else if (t1==NULL t2==NULL)
IsSame = true;
else
IsSame = false;
}
E
B
A
D
C
K
G
F
H
J
I
显示全部