编写一个递归算法,实现将一颗二叉树的左右孩子互换。
来源:互联网 发布:乱码修复软件 编辑:程序博客网 时间:2024/06/07 01:24
难点创建二叉树,交换,这里均采用递归方法来做。
相信大家一看就懂。
// ChangeChild.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <stdlib.h>#include <iostream>#include <Windows.h>using namespace std;typedef char element;typedef struct bitree{element data;struct bitree* lchild;struct bitree* rchild;}bitree;//交换左右子树void changechild(bitree* root){//element eleTemp;bitree* bitTemp;if (root == NULL){root = NULL;}else{bitTemp = root->lchild;root->lchild = root->rchild;root->rchild = bitTemp;changechild(root->lchild);changechild(root->rchild);}}void CreateBiTree(bitree* &T){char ch;cin>>ch;if(ch=='#') T=NULL;else{T=(bitree *)malloc(sizeof(bitree));T->data=ch;cout<<"put in \'"<<T->data<<"\' lchild"<<endl;CreateBiTree(T->lchild);cout<<"put in \'"<<T->data<<"\' rchild"<<endl;CreateBiTree(T->rchild);}}//CreateBiTreevoid PreTraversal(bitree* T){if (T == NULL){return;}else{printf("%c,",T->data);PreTraversal(T->lchild);PreTraversal(T->rchild);}}int _tmain(int argc, _TCHAR* argv[]){bitree* b1 ;b1= (bitree *)malloc(sizeof(bitree));bitree* broot;broot = b1;printf("enter # is over,put in root node\n");CreateBiTree(b1);printf("created tree\n");PreTraversal(b1);changechild(b1);printf("\nafter change lchild ,rchild\n");PreTraversal(b1);system("pause");return 0;}
- 编写一个递归算法,实现将一颗二叉树的左右孩子互换。
- 编写一个递归算法,实现将一棵二叉树的左右孩子互换。
- 二叉树互换左右孩子
- C++二叉树左右孩子的交换
- C++作业:将左右孩子互换 / 复制一棵二叉树
- 以孩子兄弟链作为树的存储结构,编写一个求树的高度的递归算法
- 非递归实现交换二叉树的左右子节点
- 二叉树复制和左右子树互换
- 二叉树复制和左右子树互换
- 编写复制一颗二叉树的非递归算法
- 二叉树的递归遍历与非递归算法实现
- 二叉树的递归遍历与非递归算法实现
- 二叉树算法的实现(递归与非递归)
- 《算法导论》二叉树遍历的递归&非递归实现
- 二叉树的各种实现(创建,叶子结点数,是否为堆,完全二叉树,二叉查找树,交换左右孩子)
- 编写算法交换二叉树中所有节点的左右子树
- [Java]将二叉树的左右子树交换 非递归实现
- 试编写一个函数,返回一颗给定二叉树在中序遍历下的最后一个节点(分别用递归和非递归实现)
- hdoj1176 免费馅饼 (DP)
- 经典数据结构之链表实现的栈
- adb server is out of date. killing...
- PS滤镜有的时候不能用?
- 字符串函数_比较字符串与字符串集合
- 编写一个递归算法,实现将一颗二叉树的左右孩子互换。
- 线程总结(一)
- opt/FriendlyARM/toolschain/4.4.3/bin/.arm-none-linux-gnueabi-ld: cannot find -lc
- oracle 帐号管理
- 生成代码
- HTML入门之2.1
- 常用类库-01图片:生成缩略图
- 简介 WatiN是一个开源的用于Web测试自动化的类库,从watir中获得的灵感,使用C#开发。WatiN通过与浏览器的交互来实现自动化,使用起来具有轻便,简单的特点。目前最新版本为2.0,加入了对
- C#多线程处理文件的简单例子