用C语言描述树的孩子兄弟链表结构,并编写递归程序求树中叶子结点数。【北京交通大学2004八(10分)】
对于图4-38所示的树,试给出:
1)双亲数组表示法示意图;
2)孩子链表表示法示意图:
3)孩子兄弟链表表示法示意图。
已知顶点1~6和输入边与权值的序列(如右图所示):每行三个数表示一条边的两个端点和其权值,共11行。请你:
(1)采用邻接多重表表示该无向网,用类Pascal语言描述该数据结构,画出存储结构示意图,要求符合在边结点链表头部插入的算法和输入序列的次序。 (2)分别写出从顶点1出发的深度优先和广度优先遍历顶点序列,以及相应的生成树。 (3)按Prim算法列表计算,从顶点1始求最小生成树,并图示该树。【北京工业大学1999四(20分)】
请画出这棵树,并回答下列问题:
(1)哪个是根结点?
(2)哪些是叶结点?
(3)哪个是g的双亲?
(4)哪些是g的祖先?
(5)哪些是g的孩子?
(6)哪些是e的子孙?
(7)哪些是e的兄弟?哪些是f的兄弟?
(8)结点b和n的层次各是多少?
(9)树的深度是多少?
(10)以结点c为根的子树的深度是多少?
(11)树的度数是多少?
二叉树采用二叉链表存储: (1)编写计算整个二叉树高度的算法(二叉树的高度也叫二叉树的深度)。 (2)编写计算二叉树最大宽度的算法(二叉树的最大宽度是指二叉树所有层中结点个数的最大值)。