二叉树中序遍历递归算法,求树的高度,以及拷贝树
来源:互联网 发布:java 判断true false 编辑:程序博客网 时间:2024/05/03 20:00
#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct BiTNode{int date;struct BiTNode *lchild, *rchild;//二叉树左枝,右枝}BiTNode;void inOrder(BiTNode *root)//中序遍历递归算法{if (root == NULL){return;}inOrder(root->lchild);//遍历左枝printf("%d ", root->date);//打印节点inOrder(root->rchild);//遍历右枝}int Depth(BiTNode * root)//递归求树的高度{int DepthLeft = 0;//左树高度int DephRight = 0;//右树高度int DepthLast = 0;//最后树的高度if (root == NULL){return 0;}DepthLeft = Depth(root->lchild);DephRight = Depth(root->rchild);DepthLast = 1 + (DepthLeft > DephRight ? DepthLeft : DephRight);return DepthLast;}BiTNode * CopyTree(BiTNode * root){if (root == NULL){return NULL;}BiTNode * NewNode = NULL;BiTNode * NewLef = NULL;BiTNode * NewRig = NULL;if (root->lchild != NULL){NewLef = CopyTree(root->lchild);}else{NewLef = NULL;}if (root->rchild != NULL){NewRig = CopyTree(root->rchild);}else{NewRig = NULL;}NewNode = (BiTNode *)malloc(sizeof(BiTNode));if (NewNode == NULL){return NULL;}NewNode->lchild = NewLef;NewNode->rchild = NewRig;NewNode->date = root->date;return NewNode;}void main(){BiTNode t1, t2, t3, t4, t5;memset(&t1, 0, sizeof(BiTNode));//初始化内存的数据memset(&t2, 0, sizeof(BiTNode));memset(&t3, 0, sizeof(BiTNode));memset(&t4, 0, sizeof(BiTNode));memset(&t5, 0, sizeof(BiTNode));t1.date = 1;t2.date = 2;t3.date = 3;t4.date = 4;t5.date = 5;t1.lchild = &t2;t1.rchild = &t3;t2.rchild = &t4;t3.lchild = &t5;int height = Depth(&t1);printf("树的高度:%d\n",height);printf("*********************\n递归算法中序遍历:\n");inOrder(&t1);printf("\n*********************\n");BiTNode *tmp = NULL;tmp = CopyTree(&t1);printf("*********************\n递归算法中序遍历:\n");inOrder(tmp);printf("\n*********************\n");system("pause");}
0 0
- 二叉树中序遍历递归算法,求树的高度,以及拷贝树
- 二叉树(递归遍历和非递归遍历)(递归求树的高度以及叶子节点数和拷贝树)
- 二叉树基本算法,递归非递归遍历以及求高度、宽度等
- 数据结构_求二叉树的高度以及层次遍历二叉树算法_C语言源代码
- 层次遍历求二叉树的高度(非递归)
- 二叉树的先序中序后序以及递归算法求高度和结点数目
- 二叉树递归求高度,非递归求高度,层次遍历
- 利用层次遍历非递归求二叉树高度
- 求二叉树的高度(非递归)
- 递归求二叉树的高度
- 递归求二叉树的高度
- 递归建立二叉查找树(BST)以及递归求树的高度
- 二叉树的操作3非递归算法求二叉树的高度
- 求解二叉树高度的递归算法
- 求树高度的非递归算法
- 判断完全二叉树以及求二叉树深度的递归与非递归算法实现
- 二叉树的非递归遍历以及递归遍历
- 二叉树的递归遍历以及非递归遍历
- struts2的工作原理
- Andi老师的技术博客--说在前面的
- 图解nginx CYCLE的四级指针
- PHP程序设计读书笔记六
- 服务器使用Tomcat配置server.xml文件通过域名直接跳转到项目
- 二叉树中序遍历递归算法,求树的高度,以及拷贝树
- 数据结构上机实验之二分查找
- 上传大容量(超过1G)的数据 在系统内是怎么处理,需要注意什么
- css3中的box-sizing的用法
- spring4 aop 带参数表达式报错 error at ::0 formal unbound in pointcut
- Can't create handler inside thread that has not called Looper.prepare()
- hadoop 性能调优 重要参数设置技巧
- ubuntu12.04重启之后发现输入正确的帐号和密码会闪一下命令行,然后又回到登录界面
- 根据对应的报错位置的地址找到对应的代码段