| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 580 人关注过本帖
标题:[求助]求问:一道二叉树的问题
只看楼主 加入收藏
zz100
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-11-14
收藏
 问题点数:0 回复次数:2 
[求助]求问:一道二叉树的问题

二叉树:
先序序列:A B D M R N S C E P G Q F H T J
中序序列:R M D N S B A P E Q G C H T F J

(1)设计构造函数建立一棵二叉树的二叉链表存储。
(2)设计将二叉链表存储转换为一维数组结构的算法。并以上述
例为实验数据验证。
(3)设计以二叉链表存储的二叉树,求其叶子结点个数。

哪位大大给下解答或思路,不胜感激

搜索更多相关主题的帖子: 二叉树 
2006-11-15 12:29
ohwxw
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-11-18
收藏
得分:0 

(1)

void CrtBT(BiTree& T, char pre[], char ino[],
int ps, int is, int n ) {
// 已知pre[ps..ps+n-1]为二叉树的先序序列,
// ino[is..is+n-1]为二叉树的中序序列,本算法由此两个序列构造二叉链表 ,ps为先序序列的开始位置,is为中序序列的开始位置,n为序列长度
if (n==0) T=NULL;
else {
k=Search(ino, pre[ps]); //查询先序序列中的
//第一个字符在中序序列中的位置
if (k== -1) T=NULL;
else { }
}
} // CrtBT
T=(BiTNode*)malloc(sizeof(BiTNode));
T->data = pre[ps];
if (k==is) T->Lchild = NULL; //先序序列中第一个字
符在中序序列中也是第一个字符,则表示没有左子树
else CrtBT(T->Lchild, pre[], ino[],
ps+1, is, k-is );
if (k==is+n-1) T->Rchild = NULL; //先序序列中第一
个字符在中序序列中是最后一个字符,则表示没有右子树
else CrtBT(T->Rchild, pre[], ino[],
ps+1+(k-is), k+1, n-(k-is)-1 );


(3)
Int CountLeaf (BiTree T) {
if (T==NULL) return 0;
else if (T->lchild==NULL &&
T->rchild==NULL) return 1;
else return CountLeaf(T->lchild) +
CountLeaf(T->rchild);
}
2006-11-18 10:13
zhourunfa66
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-5-17
收藏
得分:0 

class ZB:public Base{
public:
};
class ZX:protected First,virtual private Base{};
class FX:protected Fbase,virtual private Base{};


这里似乎不应该用继承吧?
class ZB这个招生办类,应该是包含很多个学生,也就是说里面应该有个Student的容器,比如Student m_aStu[100];或者vector<Student> m_vecStu;

2006-11-26 03:04
快速回复:[求助]求问:一道二叉树的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013676 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved