二叉树2
来源:互联网 发布:我想在淘宝开店 编辑:程序博客网 时间:2024/06/04 18:33
#include "stdio.h"//二叉树的练习typedef struct BiTNode{ char data; /*结点的数据域*/ struct BiTNode *lchild , *rchild; /*指向左孩子和右孩子*/} BiTNode , *BiTree;/*创建一棵二叉树*/CreatBiTree(BiTree *T){ char c; c = getch();printf("get = %c\n",c); if(c == ' ') *T = NULL; else{ *T = (BiTNode * )malloc(sizeof(BiTNode)); /*创建根结点*/ (*T)->data = c; /*向根结点中输入数据*/ CreatBiTree(&((*T)->lchild)); /*递归地创建左子树*/ CreatBiTree(&((*T)->rchild)); /*递归地创建右子树*/ }}/*访问二叉树结点,输出包含D字符结点位于二叉树中的层数*/visit(char c,int level){ if(c == 'D') printf("%c is at %d lever of BiTree\n",c,level);}/*遍历二叉树*///先序PreOrderTraverse(BiTree T,int level){ if(T){ /*递归结束条件,T为空*/printf("node: %c, level: %d\n",T->data,level); //visit(T->data,level); /*访问根结点*/ PreOrderTraverse(T->lchild,level+1); /*先序遍历T的左子树*/ PreOrderTraverse(T->rchild,level+1); /*先序遍历T的右子数*/ }}//中序InOrderTraverse(BiTree T,int level){ if(T){ /*递归结束条件,T为空*/ InOrderTraverse(T->lchild,level+1); /*先序遍历T的左子树*/printf("node: %c, level: %d\n",T->data,level); InOrderTraverse(T->rchild,level+1); /*先序遍历T的右子数*/ }}//后序PostOrderTraverse(BiTree T,int level){ if(T){ /*递归结束条件,T为空*/ PostOrderTraverse(T->lchild,level+1); /*先序遍历T的左子树*/ PostOrderTraverse(T->rchild,level+1); /*先序遍历T的右子数*/printf("node: %c, level: %d\n",T->data,level); }}//统计二叉树叶子节点数int CountLeaf(BiTree T){static int count = 0;if (T){count = CountLeaf(T->lchild);if ((T->lchild == NULL) && (T->rchild == NULL)){count ++;}count = CountLeaf(T->rchild);}return count;}//求二叉树的深度int TreeDepth(BiTree T){static int count = 0;if (T){count++;count = TreeDepth(T->lchild);count = TreeDepth(T->rchild);}return count;}main(){ int level = 1; int Node_num = 0,Depth_num = 0; BiTree T = NULL; /*最开始T指向空*/ CreatBiTree(&T); //创建二叉树,先画出树形图,根据图进行输入创建 printf("\n先序遍历:\n"); PreOrderTraverse(T,level); //遍历二叉树,找到包含D字符结点位于二叉树中的层数 printf("\n中序遍历:\n"); InOrderTraverse(T,level); //遍历二叉树,找到包含D字符结点位于二叉树中的层数 printf("\n后序遍历:\n"); PostOrderTraverse(T,level); //遍历二叉树,找到包含D字符结点位于二叉树中的层数 Node_num = CountLeaf(T); Depth_num = TreeDepth(T); printf("\nNode_num = %d, Depth_num = %d\n",Node_num,Depth_num);}
0 0
- 二叉树(2)
- 二叉树2
- 二叉树2
- 二叉树2
- 二叉树2
- 二叉树2
- 2:二叉搜索树
- 二叉树2
- 二叉树(2)
- 二叉树 2
- 【数据结构】二叉树2
- 二叉树(2)
- 2013716-2 二叉树
- 二叉树(2)
- 二叉搜索树 2
- 二叉树-2
- 二叉树、二叉堆
- 【二叉树2】逐层遍历一棵二叉树
- YouTube转向Amazon的推荐算法 | Resys China
- 浅谈数据库的完整性
- Unity3D 学习笔记(四) Unity连接MySQL数据库
- 【Android】 分享一个完整的项目,适合新手!
- 在SSH2项目中添加JBPM4的开发环境
- 二叉树2
- Java设计模式初解 之 单例模式
- 黑马程序员——GUI-网络编程-反射
- JavaMelody监控spring、struts
- 泛型
- unix下ftp传输大文件问题请教
- 【C#网络编程系列】专题十二:实现一个简单的FTP服务器
- 多叉树转二叉树
- telosb中RSSI与距离的分析