<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)  編輯  收藏 所屬分類: 數據結構&算法

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


    網站導航:
     
    主站蜘蛛池模板: 一个人免费观看日本www视频| 亚洲精品无码乱码成人| 无码国产精品久久一区免费| 可以免费观看的国产视频| 国产在线观a免费观看| 成全视成人免费观看在线看| eeuss草民免费| 久久er国产精品免费观看8| 国产成人精品免费大全| 国产va免费观看| 中文字幕手机在线免费看电影| sihu国产精品永久免费| 黄床大片免费30分钟国产精品| 中文字幕无线码中文字幕免费| 日韩精品无码免费专区网站| 国产午夜无码精品免费看| 免费在线看黄网站| 91香蕉成人免费网站| 成年女人色毛片免费看| 青青草国产免费久久久下载| 国产成人在线观看免费网站| 免费一级成人毛片| 亚洲午夜精品久久久久久浪潮| 国产成人精品日本亚洲专区61 | 免费国产污网站在线观看| 三年在线观看免费观看完整版中文| a级日本高清免费看| 99国产精品视频免费观看| 在线观看的免费网站| 色视频色露露永久免费观看| 亚洲国产成人乱码精品女人久久久不卡| 国产精品亚洲mnbav网站| 亚洲成av人片天堂网| 亚洲国产综合人成综合网站00| 亚洲综合小说另类图片动图| 全黄A免费一级毛片| 国产午夜免费高清久久影院| 中文字幕乱码免费视频| 日韩精品电影一区亚洲| 亚洲中文字幕不卡无码| 亚洲第一永久在线观看|