zoukankan      html  css  js  c++  java
  • 5)二叉树[1]二叉树的遍历(先序、中序、后序)

     1 #include "iostream"
     2 using namespace std;
     3 
     4 typedef char type;
     5 struct bnode{
     6     type data;
     7     bnode *lchild,*rchild;
     8 };
     9 
    10 class tree{
    11 public:
    12     tree();//初始化
    13     ~tree();
    14     void create_tree(bnode *&T);//建立二叉树
    15     void preorder(bnode *T);//先序遍历
    16     void inorder(bnode *T);//中序遍历
    17     void postorder(bnode *T);//后序遍历
    18 private:
    19     int count;//元素个数统计
    20 };
    21 
    22 tree::tree()//初始化
    23 {
    24     count = 0;
    25 }
    26 
    27 void tree::create_tree(bnode *&T)//建立二叉树
    28 {
    29     type x;
    30     cin>>x;
    31     if(x=='.')T=NULL;
    32     else {
    33         T = new bnode;
    34         T->data = x;
    35         count++;
    36         create_tree(T->lchild);
    37         create_tree(T->rchild);
    38     }
    39 }
    40 
    41 void tree::preorder(bnode*T)//先序遍历
    42 {
    43     if(T!=NULL)
    44     {
    45         cout<<T->data<<" ";
    46         preorder(T->lchild);
    47         preorder(T->rchild);
    48     }
    49 }
    50 
    51 void tree::inorder(bnode*T)//中序遍历
    52 {
    53     if(T!=NULL)
    54     {
    55         inorder(T->lchild);
    56         cout<<T->data<<" ";
    57         inorder(T->rchild);
    58     }
    59 }
    60 
    61 void tree::postorder(bnode*T)//后序遍历
    62 {
    63     if(T!=NULL)
    64     {
    65         postorder(T->lchild);
    66         postorder(T->rchild);
    67         cout<<T->data<<" ";
    68     }
    69 }
    70 
    71 tree::~tree(){}
    72 
    73 int main()
    74 {
    75     tree Tree;
    76     bnode *T;
    77     cout<<"Create Tree:";
    78     Tree.create_tree(T);
    79     cout<<"Tree finished!"<<endl;
    80     cout<<"preorder Tree:";
    81     Tree.preorder(T);
    82     cout<<endl;
    83     cout<<"inorder Tree:";
    84     Tree.inorder(T);
    85     cout<<endl;
    86     cout<<"postorder Tree:";
    87     Tree.postorder(T);
    88     cout<<endl;
    89     return 0;
    90 }

  • 相关阅读:
    蒙版
    雪碧图
    用html来设置一个用户登录网页
    用vs来实现反序输出的效果
    用vs来写一段判断是不是水仙花数的代码
    Node.js使用Sequelize操作MySQL
    修改 xampp 默认端口号
    TCP/IP详解学习笔记(1)基本概念
    CSS常用标签
    Linux 系统中 sudo 命令的 10 个技巧
  • 原文地址:https://www.cnblogs.com/minmsy/p/5026594.html
Copyright © 2011-2022 走看看