数据结构-二叉树-建立,输出,计算长度-C++
来源:互联网 发布:手机qq java 编辑:程序博客网 时间:2024/06/09 22:54
#include<iostream>#include<stdlib.h>using namespace std;typedef struct BTNode BTNode;struct BTNode{ int ch; BTNode * left; BTNode * right;};// 创建一个二叉树 先序输入 0表示NULL BTNode * creatBTNode(){ BTNode * p; int ch; cin>>ch; if(ch ==0){ p=NULL; } else{ p=(BTNode *)malloc(sizeof(BTNode)); p->ch=ch; p->left=creatBTNode(); p->right=creatBTNode(); } return p;}//*****************先序遍历************void preOrderTraverse(BTNode * node){ if(node){ cout<<node->ch<<' '; preOrderTraverse(node->left); preOrderTraverse(node->right); }}//******************中序遍历**********void inOrderTraverse(BTNode * node){ if(node){ inOrderTraverse(node->left); cout<<node->ch<<' '; inOrderTraverse(node->right); }}//*****************后序遍历输出*******void lastOrderTraverse(BTNode * node){ if(node){ lastOrderTraverse(node->left); lastOrderTraverse(node->right); cout<<node->ch<<' '; }}//****************二叉树节点数目******int NodeNum(BTNode * node){ if(node==NULL){ return 0; } else{ return 1+NodeNum(node->left)+NodeNum(node->right); } }//*************二叉树深度*************int DepthOfTree(BTNode * node){ if(node){ return DepthOfTree(node->left)>DepthOfTree(node->right)?DepthOfTree(node->left)+1:DepthOfTree(node->right)+1; } if(node==NULL){ return 0; }}//**************二叉树叶子节点数*******int leafNum(BTNode * node){ if(!node){ return 0; } else if(node->left==NULL&&node->right==NULL){ return 1; } else{ return (leafNum(node->left)+leafNum(node->right)); }}int main(){ BTNode * bttree=creatBTNode(); cout<<"先序遍历输出:"<<endl; preOrderTraverse(bttree); cout<<"\n中序遍历输出:"<<endl; inOrderTraverse(bttree); cout<<"\n后序遍历输出:"<<endl; lastOrderTraverse(bttree); cout<<"\n二叉树节点数目:"<<endl; cout<<NodeNum(bttree)<<endl; cout<<"二叉树深度"<<endl; cout<<DepthOfTree(bttree)<<endl; cout<<"叶子节点数"<<endl; cout<<leafNum(bttree)<<endl; return 0;}
原文:http://blog.csdn.net/ricardo_he/article/details/41119709
阅读全文
0 0
- 数据结构-二叉树-建立,输出,计算长度-C++
- 二叉树的建立,删除,查找,插入,输出(数据结构)
- 数据结构 树 二叉树的建立及遍历 C语言版
- 数据结构--二叉树按层次建立和按层次输出二叉树的内容
- 建立二叉树和输出
- 数据结构之二叉树建立
- 数据结构-二叉树的建立
- 基本数据结构——二叉树的建立,遍历,求叶子节点,深度计算
- 数据结构(C++)--二叉树
- 二叉树(数据结构 c++)
- 【数据结构】二叉树(c++)
- 建立二叉树,并层次遍历输出
- python数据结构--二叉树建立与遍历
- 数据结构 二叉树的建立与遍历
- 数据结构之二叉树(遍历、建立、深度)
- 数据结构之二叉树(遍历、建立、深度)
- 数据结构之二叉树(遍历、建立、深度)
- 数据结构之二叉树(遍历、建立、深度)
- web学习笔记23-Struts2简介,配置
- maven配置
- Android开发小结——AndroidStudio使用技巧
- 快速沃尔什变换学习小记
- 巧用栈结构实现迷宫游戏
- 数据结构-二叉树-建立,输出,计算长度-C++
- 160个练手CrackMe-030
- 11.11考试总结
- 数据结构部分考点整理
- hdoj 1727 Hastiness
- 多线程问题
- OpenMAX编程-数据结构
- [LeetCode]Container With Most Water
- Android短信验证码