九.下面各题中的函数f起什么作用:
a. template <class t>
int f(cnode<t>& s)
{ cnode<t> *p=s.nextnode();int l=0;
while(p!=&s){ l++; p=p->nextnode();}
return l; }
b. template <class t>
t f(treenode<t>*t,seqlist<t>& l)
{ inorderiterater<t> titer(t); int n=0;
for(titer.reset();!titer.endoflist();
titer.next())
{ l.insert(titer.data()); n++;}
return l.getdat(n/2); }
c. template <class t>
seqlist<t> f(graph<t> &g)
{seqlist<t> l; vertexiterater<t> viter(g);
seqlistiterater<t> liter(l);
for(viter.reset();!viter.endoflist();
viter.next())
{ cout<<viter.data()<<“: ”;
l= g.depthfirstsearch(viter.data());
liter.setlist(l);
printlist(l);
cout<<end;
}
}
十.画出以下邻接矩阵所对应的图g,假设顶点字符是a,b,c……
0 1 1 0 0 0 0 0 a c
0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 b d e f
0 0 1 0 0 0 0 0
0 0 1 0 1 0 0 0
0 0 0 1 0 0 0 0 g h
0 0 0 0 0 1 1 0
a.g的强连通块是________.
(a){a,b,c,d}{e,f,g.h}
(b){a,b,c,d} {e} {f} {g,h}
(c){a,b,d} {c} {e} {f} {g} {h}
(d) {a,b,d} {c,e,f} {g} {h}
b.给出g的可及矩阵.
c.分别给出从a点出发的按深度优先和广度优先搜索的遍列次序.
十一.深度为5的满二叉树有多少个结点?13个结点的满二叉树深度是多少?有几个叶片?一棵二叉树有7片叶子,有多少个2度结点?
十二。一个栈依次输入x,y,z,给出全部可能的输出序列,共有几种不同的序列?
一个栈依次输入a1,a2,8226;8226;8226;8226;8226;,an,共有几种不同的序列输出序列?
十三. 用希尔排序法对序列485,27,504,838,192,796,248,583,467,154,539,629,697,805,736,94,638,426,154,489,512,677,761,724,73排序,取d1=15,d2=7, d3=3,d4=1 给出每一轮排序的结果。
十四.用基数排序的方法对上题中的数列排序,给出每一轮排序的结果。
十五. 求n个结点的k叉树的最小深度,n个结点的avl树的最小深度,n个结点的b-树的最小深度。 6个结点的不同的树有多少种?
十六. 证明n个关键字的b-树的失败结点有n+1个。
附录:完整word稿下载