二叉树的操作(C language)
来源:互联网 发布:使用java制作电脑程序 编辑:程序博客网 时间:2024/06/16 07:13
#include<stdio.h>#include<stdlib.h>#include<malloc.h>#define ElemType char#define OK 0#define FALSE 1#define Status inttypedef struct BinTree{ElemType data;struct BinTree *right,*left;}BinTree;// Create a binary tree with root node treeStatus CreateBinTree(BinTree **tree){ElemType ch;ch = getchar();if(ch == '#')*tree = NULL;else{*tree = (BinTree *)malloc(sizeof(BinTree));(*tree)->data = ch;CreateBinTree(&(*tree)->left);CreateBinTree(&(*tree)->right);}return OK;}//preorder traversing bintreevoid PreOrder(BinTree *tree){if(tree){printf("%c",tree->data);PreOrder(tree->left);PreOrder(tree->right);}}void PostOrder(BinTree *tree){if(tree){PreOrder(tree->left);PreOrder(tree->right);printf("%c",tree->data);}}ElemType DepthBinTree(BinTree *tree){int h,lh,rh;if(tree == NULL)h = 0;else{lh = DepthBinTree(tree->left);rh = DepthBinTree(tree->right);if( lh >= rh)h = lh+1;elseh = rh+1;}return h;}ElemType NumOredeNode(BinTree *tree){int num=0;if(tree == NULL)return 0;elsenum = NumOredeNode(tree->left) + NumOredeNode(tree->right) + 1;return num;}int main(){int h,num;BinTree *T;CreateBinTree(&T);PreOrder(T);printf("\n");PostOrder(T);h = DepthBinTree(T);num = NumOredeNode(T);printf("%d\n",h);printf("%d\n",num);return 0;}
0 0
- 二叉树的操作(C language)
- 【数据结构】存储二叉树节点的栈 C language
- 二叉树的基本操作(C++)
- 二叉树/二叉搜索树的操作汇集(c++)
- 心动C++: 情牵二叉树(C Language)
- 二叉树的一些操作(C语言实现)
- 二叉树的操作 (数据结构c语言)
- 二叉树的相关操作(C语言)
- 顺序二叉树的基础操作(C++)
- 二叉树的基本操作(C语言版)
- C语言二叉树的基本操作
- 二叉树的基本操作C源代码
- C语言:二叉树的相关操作
- 【C++】二叉树的基本操作
- 二叉树的基本操作 C语言
- c 二叉树基本操作
- 0115(C language)
- C Language(1)
- 操作系统文件管理
- 物料变式的订货型生产(3.0C:可库存的类型)(26)
- 计划策略-30-按销售与库存订单以批量生产
- Xcode6 添加pch文件
- 【iOS开发之Objective-C】协议和代理
- 二叉树的操作(C language)
- 计划策略-40-最终装配计划
- nodejs与Express4配合搭建网站
- 小点滴——word自动目录+页码问题——摘自贴吧
- ipp sample cmake编译uic、application、picnic时需要Qt4(已安装Qt4.8.5)cmakelist.txt修改
- 计划策略-50-没有最终装配的计划
- 计划策略-52-没有最终装配和没有MTO的计划
- hdu 1285 确定比赛名次
- EnvironmentError:mysql config not found