<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-204  評論-90  文章-8  trackbacks-0
    本文實現二叉樹的遞歸創建、遍歷及深度計算。即輸入:abd##e##cf###(按二叉樹結構輸入)
    二叉樹:
    返回結果如下:


    完整代碼如下:
     #include <stdio.h>
    //樹結構
     typedef struct tree {
         
    char data;
        
    struct tree *lchild, *rchild;
     } tree;

     
    //創建樹
     struct tree* create_tree() {
         
    char node_data;
        scanf(
    "%c"&node_data);
        
    if(node_data == '#') {
            
    return NULL;
        } 
    else {
            
    struct tree *= NULL;
            T 
    = (struct tree*)malloc(sizeof(struct tree));
            T
    ->data = node_data;
            T
    ->lchild = create_tree();
            T
    ->rchild = create_tree();
            
    return T;
        }
     }

     
    //先序遍歷
     void pre_traverse(struct tree *T) {
         
    if(T == NULL) {
            
    return;
        } 
    else {
            printf(
    "%c\t", T->data);
            pre_traverse(T
    ->lchild);
            pre_traverse(T
    ->rchild);
        }
     }
     
    //中序遍歷
     void mid_traverse(struct tree *T) {
         
    if(T == NULL) {
            
    return;
        } 
    else {
            mid_traverse(T
    ->lchild);
            printf(
    "%c\t", T->data);
            mid_traverse(T
    ->rchild);
            
        }
     }
     
    //后序遍歷
     void aft_traverse(struct tree *T) {
         
    if(T == NULL) {
            
    return;
        } 
    else {
            aft_traverse(T
    ->lchild);
            aft_traverse(T
    ->rchild);
            printf(
    "%c\t", T->data);
        }
     }
    //深度
    int tree_deepth(struct tree *T) {
        
    int i,j;
        
    if(!T) {
            
    return 0;
        } 
    else {
            
    if(T->lchild)
                i 
    = tree_deepth(T->lchild);
            
    else 
                i 
    = 0;

            
    if(T->rchild)
                j 
    = tree_deepth(T->rchild);
            
    else
                j 
    = 0;
        
    return i > j ? (i + 1) : (j + 1);
        }
    }

     
    int main(int argc, char **argv) {
         
    struct tree *= create_tree();
        
    if(T) {
            printf(
    "%s\n""先序:");
            pre_traverse(T);
            printf(
    "\n%s\n""中序:");
            mid_traverse(T);
            printf(
    "\n%s\n""后序:");
            aft_traverse(T);
            printf(
    "\n%s\n""深度:");
            
    int deepth = tree_deepth(T);
            printf(
    "%d\n", deepth);
            printf(
    "\n");
        }
         
    return 0;
     }

    posted on 2012-04-09 17:19 一凡 閱讀(304) 評論(0)  編輯  收藏 所屬分類: 數據結構&算法

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 黄人成a动漫片免费网站| 无码人妻精品中文字幕免费| 国产精品亚洲产品一区二区三区 | 日韩精品人妻系列无码专区免费| 亚洲色图视频在线观看| 日本无吗免费一二区| 中文日本免费高清| 色婷五月综激情亚洲综合| 中文字幕亚洲日韩无线码| 国产h视频在线观看网站免费| 二级毛片免费观看全程| 亚洲国产精品张柏芝在线观看| 免费jjzz在在线播放国产| 18禁男女爽爽爽午夜网站免费| 黄页视频在线观看免费| 亚洲国产成a人v在线| 国产亚洲精品精品国产亚洲综合| 免费无码黄十八禁网站在线观看| 好吊色永久免费视频大全| 亚洲一区二区三区写真| 亚洲狠狠综合久久| 亚洲国产精品成人| 拨牐拨牐x8免费| 免费精品无码AV片在线观看| 美女被免费网站在线视频免费| 亚洲国产精品自在在线观看| 亚洲精品美女久久久久99小说| 亚洲三级电影网站| mm1313亚洲精品国产| 亚洲免费中文字幕| 国产成人免费AV在线播放 | 国产成人AV免费观看| 福利片免费一区二区三区| 亚洲xxxxxx| 亚洲第一二三四区| 毛片a级毛片免费观看品善网| 久久九九全国免费| 无码 免费 国产在线观看91| 亚洲精品无码久久久久A片苍井空| 亚洲精品成人久久| 久久久亚洲精品视频|