设为首页 加入收藏

TOP

[数据结构] 二叉树的建立及其基本操作
2015-07-24 07:07:58 来源: 作者: 【 】 浏览:55
Tags:数据结构 建立 及其 基本操作

如图:

\

代码:

#include 
  
   
#include 
   
     #include 
    
      #include 
     
       using namespace std; char ch; typedef struct BinNode { char data; struct BinNode *lchild,*rchild; }BinNode,*BinTree; //二叉树链式存储结构 void CreateBinTree(BinTree &T)//先序建立二叉树 { ch=cin.get(); if(ch==' ') T=NULL; else if(ch=='\n') return; else { T=(BinNode*)malloc(sizeof(BinNode)); T->data=ch;//这是根节点 CreateBinTree(T->lchild);//创建左孩子 CreateBinTree(T->rchild);//创建右孩子 } } void PreOrder(BinTree T)//前序遍历二叉树 { if(T!=NULL) { cout<
      
       data; PreOrder(T->lchild); PreOrder(T->rchild); } } void InOrder(BinTree T)//中序遍历二叉树 { if(T!=NULL) { InOrder(T->lchild); cout<
       
        data; InOrder(T->rchild); } } void PostOrder(BinTree T)//后序遍历二叉树 { if(T!=NULL) { PostOrder(T->lchild); PostOrder(T->rchild); cout<
        
         data; } } int cnt=0; int countNode(BinTree T)//求二叉树中节点的个数 { if(T) { cnt++; countNode(T->lchild); countNode(T->rchild); } return cnt; } int depthval=0; int dl=0; int dr=0; int Depth(BinTree T)//求二叉树的高度 { if(!T) return 0; else { dl=Depth(T->lchild); dr=Depth(T->rchild); depthval=1+(dl>dr?dl:dr); return depthval; } } int main() { //freopen("in.txt", "r", stdin); BinTree T; cout<<"按照先序次序输入二叉树各个节点的元素值,叶子节点为空用空格表示:"<
          
          


运行截图:

\注意输入的时候G后面还有两个空格

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇采用头插插法和尾插法建立单项链表 下一篇栈的应用举例-进行算术运算

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: