<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 一凡 閱讀(306) 評論(0)  編輯  收藏 所屬分類: 數據結構&算法

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


    網站導航:
     
    主站蜘蛛池模板: 超pen个人视频国产免费观看| 114级毛片免费观看| 国产成人精品免费直播| 亚洲人成综合网站7777香蕉| 最近在线2018视频免费观看| 久久久久亚洲AV无码专区首JN| 久久国产乱子伦免费精品| 亚洲日本一区二区| 青青视频观看免费99| 亚洲综合小说另类图片动图 | 四虎成人精品国产永久免费无码| 四虎成人免费网站在线| 亚洲av乱码中文一区二区三区| 免费国产成人高清在线观看麻豆| 黄色a三级免费看| 在线亚洲午夜理论AV大片| 成人影片一区免费观看| 久久亚洲精品中文字幕| 18勿入网站免费永久| 亚洲日韩在线中文字幕综合 | 日本一道本高清免费| 免费无码专区毛片高潮喷水| 久久久久噜噜噜亚洲熟女综合 | 100部毛片免费全部播放完整| 亚洲一本之道高清乱码| 日本免费高清一本视频| eeuss免费天堂影院| 日本久久久久亚洲中字幕| 人禽杂交18禁网站免费| 精品久久久久亚洲| 国产亚洲一区二区三区在线观看| 亚洲免费在线视频播放| 99亚洲男女激情在线观看| 亚洲成A人片777777| 无码视频免费一区二三区| 人碰人碰人成人免费视频| 亚洲狠狠ady亚洲精品大秀| 国产大片51精品免费观看| 日本视频在线观看永久免费| 亚洲精品欧美综合四区| 亚洲精品色午夜无码专区日韩|