• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 183,  comments - 10,  trackbacks - 0

            二叉樹的遍歷

            ·先根 中根 后根
            ·遞歸 非遞歸
            ·層序

              1 #include <iostream>
              2 #include <queue>
              3 #include <stack>
              4 using namespace std;
              5 
              6 struct node
              7 {
              8     int item;
              9     node* left;
             10     node* right;
             11 };
             12 
             13 void visit(node* p)
             14 {
             15     if (p != 0)
             16     {
             17         cout << p->item << ' ';
             18     }
             19 }
             20 
             21 node* insert(node*& p, int i)
             22 {
             23     if (p == 0)
             24     {
             25         p = new node;
             26         p->item = i;
             27         p->left = 0;
             28         p->right = 0;
             29     }
             30     else
             31     {
             32         if (i < p->item)
             33         {
             34             insert(p->left, i);
             35         }
             36         else
             37         {
             38             insert(p->right, i);
             39         }
             40     }
             41     return p;
             42 }
             43 
             44 void preOrder(node* root)
             45 {
             46     if (root != 0)
             47     {
             48         visit(root);
             49         preOrder(root->left);
             50         preOrder(root->right);
             51     }
             52 }
             53 
             54 void preOrderNonrecursive(node* root)
             55 {
             56     //
             57 }
             58 
             59 void inOrder(node* root)
             60 {
             61     if (root != 0)
             62     {
             63         inOrder(root->left);
             64         visit(root);
             65         inOrder(root->right);
             66     }
             67 }
             68 
             69 void inOrderNonrecursive(node* root)
             70 {
             71     //
             72 }
             73 
             74 void postOrder(node* root)
             75 {
             76     if (root != 0)
             77     {
             78         postOrder(root->left);
             79         postOrder(root->right);
             80         visit(root);
             81     }
             82 }
             83 
             84 void postOrderNonrecursive(node* root)
             85 {
             86     //
             87 }
             88 
             89 void levelOrder(node* root)
             90 {
             91     if (root != 0)
             92     {
             93         queue<node*> q;
             94         node* t;
             95         q.push(root);
             96         while (!q.empty())
             97         {
             98             t = q.front();
             99             cout << t->item << ' ';
            100             q.pop();
            101             if (t->left != 0)
            102             {
            103                 q.push(t->left);
            104             }
            105             if (t->right != 0)
            106             {
            107                 q.push(t->right);
            108             }
            109         }
            110     }
            111 }
            112 
            113 int    main()
            114 {
            115     int a[] = {342156};
            116     node* bt = 0;
            117     for (int i = 0; i != sizeof (a) / sizeof (*a); ++i)
            118     {
            119         cout << i << endl;
            120         insert(bt, a[i]);
            121     }
            122     preOrder(bt);
            123     cout << endl;
            124     inOrder(bt);
            125     cout << endl;
            126     postOrder(bt);
            127     cout << endl;
            128     levelOrder(bt);
            129     cout << endl;
            130     return 0;
            131 }

             


            posted on 2011-07-27 10:59 unixfy 閱讀(120) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            久久亚洲2019中文字幕| 久久久久亚洲国产| 欧洲精品久久久av无码电影| 久久午夜夜伦鲁鲁片免费无码影视| 国产香蕉久久精品综合网| 久久国产欧美日韩精品| 久久久久久国产精品无码下载 | 武侠古典久久婷婷狼人伊人| 久久久久久久波多野结衣高潮| 国产精品一久久香蕉国产线看观看 | 精品国产综合区久久久久久| 久久精品国产亚洲αv忘忧草| 国产成人精品久久| 色综合久久久久久久久五月| 91久久九九无码成人网站| 亚洲AV无码久久精品蜜桃| 精品久久久久中文字幕一区| 国产精品一区二区久久国产| 婷婷久久五月天| 日韩久久久久中文字幕人妻| 久久青青草原综合伊人| 久久精品麻豆日日躁夜夜躁| 一本久久综合亚洲鲁鲁五月天| 久久综合久久综合久久综合| 中文精品久久久久人妻不卡| 香蕉久久夜色精品国产2020| 久久久久亚洲精品天堂久久久久久| 国产亚洲美女精品久久久久狼| 亚洲精品无码久久久久久| 亚洲成av人片不卡无码久久| 久久se精品一区二区影院| 93精91精品国产综合久久香蕉| 精品无码久久久久国产| 久久精品国产亚洲av影院| 无码人妻久久一区二区三区| 无码国内精品久久人妻蜜桃| 亚洲香蕉网久久综合影视 | Xx性欧美肥妇精品久久久久久| 国产精品久久影院| 婷婷久久综合九色综合98| 久久国产精品久久精品国产|