码迷,mamicode.com
首页 > 其他好文 > 详细

递归建立二叉树

时间:2016-10-15 22:01:43      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:

转载:递归建立二叉树

假设二叉树为:

                                        a

                              b                 c

                                   d                 e

       

         因为程序中要知道叶子结点(终点),所以要将上面的二叉树变成扩展二叉树 (把叶子结点的孩子补成#, 用作标记),  扩展后就变成了:         

                                       a

                            b                    c

                       #        d          #       e

                              #    #             #    #

 

          那么,在输入的时候,需要输入: ab#d##C#e##      (注意,输入后,按enter键即可)   ,程序如下:

#include<iostream>
using namespace std;

typedef struct node
{
    struct node *leftChild;
    struct node *rightChild;
    char data;
}BiTreeNode, *BiTree;

void createBiTree(BiTree &T)
{
    char c;
    cin >> c;
    if(# == c)
        T = NULL;
    else
    {
        T = new BiTreeNode;
        T->data = c;
        createBiTree(T->leftChild);
        createBiTree(T->rightChild);
    }
}

int main()
{
    BiTree T;
    createBiTree(T);

    return 0;
}

经遍历验证可知,上面的程序是正确的, 至于如何遍历,以后的博文会陆续给出相应的程序

递归建立二叉树

标签:

原文地址:http://www.cnblogs.com/akrusher/p/5965214.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!