资讯详情

关于二叉数的实现和一些基本操作

实现二叉数和二叉树前序遍历、中序遍历和后序遍历

#include<iostream> using namespace std;  struct BiTNode { 
         int data;  BiTNode *lchilde, *rchilde; }; ///前序遍历 void preorderTraverse(BiTNode *T) { 
         if (T == nullptr) { 
          return;  }  cout << T->data << endl;  preorderTraverse(T->lchilde);  preorderTraverse(T->rchilde); } ///中序遍历 void inorderTraverse(BiTNode *T) { 
         if (T == nullptr) { 
          return;  }  inorderTraverse(T->lchilde);  cout << T->data;  inorderTraverse(T->rchilde); } ///后序遍历 void postorderTraverse(BiTNode *T) { 
         if (T == nullptr) { 
          return;  }  postorderTraverse(T->lchilde)
      
       ; 
       postorderTraverse
       (T
       -
       >rchilde
       )
       ; cout 
       << T
       -
       >data
       ; 
       } 
       void 
       createTree
       (BiTNode 
       *
       *T
       ) 
       { 
         
       int ch
       ; cin 
       >> ch
       ; 
       if 
       (ch 
       == 
       0
       ) 
       { 
         
       *T 
       = 
       nullptr
       ; 
       return
       ; 
       } 
       else 
       { 
         
       *T 
       = 
       (BiTNode
       *
       )
       malloc
       (
       sizeof
       (BiTNode
       )
       )
       ; 
       (
       *T
       )
       -
       >data 
       = ch
       ; 
       createTree
       (
       &
       (
       *T
       )
       -
       >lchilde
       )
       ; 
       createTree
       (
       &
       (
       (
       *T
       )
       -
       >rchilde
       )
       )
       ; 
       } 
       } 
       int 
       main
       (
       ) 
       { 
         BiTNode 
       *T
       ; 
       createTree
       (
       &T
       )
       ;
       //创建一个树 cout 
       << 
       "前序遍历" 
       << endl
       ; 
       preorderTraverse
       (T
       )
       ;
       // cout 
       << 
       "中序遍历" 
       << endl
       ; 
       inorderTraverse
       (T
       )
       ; cout 
       << endl
       ; cout 
       << 
       "后序遍历" 
       << endl
       ; 
       postorderTraverse
       (T
       )
       ; cout 
       << endl
       ; 
       system
       (
       "pause"
       )
       ; 
       } 
      

代码仅供参考!

标签: adtl082armz集成电路

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台