请问下题的思路:设中序线索二叉树的类型为TBTNode* InThTree 设计算法,在一棵中序
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/09/22 06:57:00
请问下题的思路:设中序线索二叉树的类型为TBTNode* InThTree 设计算法,在一棵中序
请问下题的思路:
设中序线索二叉树的类型为TBTNode* InThTree
设计算法,在一棵中序线索二叉树中寻找结点t的子树上中序最后一个结点.
请问下题的思路:
设中序线索二叉树的类型为TBTNode* InThTree
设计算法,在一棵中序线索二叉树中寻找结点t的子树上中序最后一个结点.
一种方法是先求出以节点t为根节点的树的结点个数 设节点个数为n 然后中序遍历的时候 每访问一个数 则访问数+1 一直访问到n则该节点即中序遍历最后一个节点
再问: 是一种解答。但在求出n的时候就需要遍历一遍,在遍历的时候需要有终止遍历的条件,而这一点又恰好与中序遍历最后一个结点有关。所以理论上可行但实际上有些不便。
再问: 我的想法是,根据中序遍历二叉树的特点,最后一个结点就是结点t的右方向上最末尾的结点,如果t的右子树不存在,则末尾结点即为t本身
再问:
再答: 其实我那个方法操作也是简单的 但是我认为这个和遍历的终止条件没关系 因为在遍历的终止条件满足之前 肯定能够找到需要的结点的
大概要写的话就这样子:Node * BinaryTree::find(Node *t) const
{
static Node *p = NULL;
static int n = total_jiedian(t);
static int i = 0;
if(t != NULL)
{
find(t->left);
cout << t->elem << endl;
++i;
if(i == n)
{
p = t;
}
find(t->right);
}
return p;
}不过你的方法确实可行 应该是最简单的了 抓住了题目的规律 !
再问: 是一种解答。但在求出n的时候就需要遍历一遍,在遍历的时候需要有终止遍历的条件,而这一点又恰好与中序遍历最后一个结点有关。所以理论上可行但实际上有些不便。
再问: 我的想法是,根据中序遍历二叉树的特点,最后一个结点就是结点t的右方向上最末尾的结点,如果t的右子树不存在,则末尾结点即为t本身
再问:
再答: 其实我那个方法操作也是简单的 但是我认为这个和遍历的终止条件没关系 因为在遍历的终止条件满足之前 肯定能够找到需要的结点的
大概要写的话就这样子:Node * BinaryTree::find(Node *t) const
{
static Node *p = NULL;
static int n = total_jiedian(t);
static int i = 0;
if(t != NULL)
{
find(t->left);
cout << t->elem << endl;
++i;
if(i == n)
{
p = t;
}
find(t->right);
}
return p;
}不过你的方法确实可行 应该是最简单的了 抓住了题目的规律 !
请问下题的思路:设中序线索二叉树的类型为TBTNode* InThTree 设计算法,在一棵中序
说明在中序线索二叉树中找结点后继的方法,并完成以下的算法.
二叉树的后续序列为DCEGBFHKJIA,中序序列为DCBGEAHFIJK,试建立这颗二叉树,画出该二叉树的先序线索二叉
给出在先序线索二叉树中查找结点p的后继结点的过程 简答 不要算法
数据结构的线索二叉树,为什么在有n个结点的二叉链表中必定存在n+1个空链域
二叉树的结点算法设计一个算法,根据一个二叉树结点的先根序列和中根序列构造出该二叉树.假设二叉树是链接表示的,并且任意两个
关于二叉树结点算法的问题
求二叉树的结点个数算法
一棵左子树为空的二叉树在先序线索化后空链域的数目?
在中序线索二叉树中,每一非空的线索均指向其祖先结点()
线索二叉树的优点是便于在中序下查找前驱结点和后继结点.
题目为线索的作文 大概思路