把二叉树中每个节点左右孩子位置交换。
2006-01-18 20:54
393 查看
考研结束了,我考得很不理想。整理一下准备考研时的算法!不敢保证100%对!
设t为一棵二叉树的根节点地址指针,试设计一个非第归的算法完成把二叉树中每个节点左右孩子位置交换。
Stadus BiTreeExchange(BiTree &T)
{//相当于非第归中序遍历树,只是将visit变为交换
InitStack(s);
P=T;
while(p||!StackEmpty(s)){
if(p){
push(s,p);p->Lchild;
else
{
pop(s,p);
t=p->Rchild;
p->Rchild=p->Lchild;
p->Lchild=t;
p-=->Lchild;//虽然还指向左子树但已经是原来的右子树了
}//else
}//while
return ok;
}// BiTreeExchange
设t为一棵二叉树的根节点地址指针,试设计一个非第归的算法完成把二叉树中每个节点左右孩子位置交换。
Stadus BiTreeExchange(BiTree &T)
{//相当于非第归中序遍历树,只是将visit变为交换
InitStack(s);
P=T;
while(p||!StackEmpty(s)){
if(p){
push(s,p);p->Lchild;
else
{
pop(s,p);
t=p->Rchild;
p->Rchild=p->Lchild;
p->Lchild=t;
p-=->Lchild;//虽然还指向左子树但已经是原来的右子树了
}//else
}//while
return ok;
}// BiTreeExchange
相关文章推荐
- 查看一颗二叉树的每个节点的值是否都是其左右两个孩子节点值的和
- 设计一个镜面影射算法,将一个二叉树的每个节点的左,右子结点交换位置
- 二叉树的创建,遍历,求高度,算出节点数,算出叶子节点数,左右子树的交换,二叉树的销毁。
- 二叉树中所有节点的左右子树相互交换 递归与非递归程序
- 二叉树的各种实现(创建,叶子结点数,是否为堆,完全二叉树,二叉查找树,交换左右孩子)
- (10.28)递归建立一个二叉树,交换左右节点,并遍历
- 二叉树 遍历|统计叶子节点|求深度|交换左右子树|查找是否存在某个特定叶子节点练习题
- 二叉树的各种实现(创建,叶子结点数,是否为堆,完全二叉树,二叉查找树,交换左右孩子)
- 6_43_递归交换二叉树中所有节点的左右子树
- PAT ~ L2-011. 玩转二叉树 (树的遍历互求 + 交换左右节点)
- 二叉树的各种实现(创建,叶子结点数,是否为堆,完全二叉树,二叉查找树,交换左右孩子)
- 二叉树交换左右节点
- 将一棵二叉树的全部节点的左右子树交换顺序
- 百练+二叉树操作+直接找到父节点,然后交换左右儿子,递归
- 二叉树非递归先中后序遍历 及 非递归交换二叉树两个孩子的位置
- 交换二叉树中每个节点的两个子女
- 八.二叉树各种操作的C语言实现 深度遍历求深度,广度遍历求深度,交换左右子树,求叶子节点数
- C++二叉树左右孩子的交换
- 二叉树中所有节点的左右子树相互交换 递归与非递归程序
- 编写算法交换二叉树中所有节点的左右子树