美文网首页IT圈内那点事儿程序员
二叉树(1)- 创建二叉树

二叉树(1)- 创建二叉树

作者: 比特蛙 | 来源:发表于2016-10-27 16:29 被阅读645次

有任何问题,欢迎交流!微博@HelloWorld-_-

定义二叉树节点的结构体


typedef struct TreeNode
{
        char value;       //节点值
        TreeNode* lchild; //左子树
        TreeNode* rchild; //右子树
}TreeNode;
```
#创建二叉树
*** 
```
/*
采用递归方式创建二叉树,通过*表示没有左子树或右子树
先创建左子树,再创建右子树
*/
int generate(TreeNode* &t)
{
        char value;
        cin >> value;
        if(value != '*')
        {
                if(t)
                {
                        t->value = value;
                }
                else
                {
                        t = new TreeNode;
                        t->value = value;
                        generate(t->lchild);//创建左子树
                        generate(t->rchild);//创建右子树
                }
        }
        else // value==* 表示NULL
        {
                t = NULL;
        }
        return 0;
}
```
#二叉树示例
***
**输入**     ```  ABDH***E*I**CF*J**GK**L** ```
**生成的二叉树如下图**

![二叉树示例.png](http:https://img.haomeiwen.com/i3333768/48f4c1ef2bc6ceef.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

```
//访问二叉树节点,将value打印
int visit(TreeNode* pt)
{
        if(pt)
        {
                if(pt->value != '*')
                {
                        cout << pt->value;
                }
        }
        return 0;
}

//二叉树先序遍历算法,在本文中仅用于展示二叉树结果,不解释其原理
int preOrder(TreeNode* t)
{
        if(t)
        {
                visit(t);
                preOrder(t->lchild);
                preOrder(t->rchild);
        }
        return 0;
}

int main()
{
        TreeNode* pt = NULL;
        generate(pt);//生成二叉树
        preOrder(pt);//先序遍历二叉树,用于展示二叉树的效果
        return 0;
}
```
**运行结果**

![运行结果.png](http:https://img.haomeiwen.com/i3333768/eb911ed09c2c4742.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

相关文章

  • 数据结构之二叉树2

    二叉树的创建 二叉树的创建用到了辅助队列,通过辅助队列来创建二叉树; 二叉树的遍历 前(先)序遍历 1、递归实现 ...

  • 12.树Tree(2)

    目录:1.二叉树的基本概念2.二叉树的性质3.二叉树的创建4.二叉树的遍历 1.二叉树的基本概念 2.二叉树的性质...

  • 2.常用算法数据结构编程-二叉树子系统

    流程 1.创建二叉树的结构体节点2.创建一颗二叉树3.就是显示二叉树,求关于二叉树的相关数据(先序遍历,中序遍历,...

  • 二叉树相关

    二叉树相关问题 静态创建二叉树 1.首先建立一个树节点,节点有值,左节点和右节点 2.想要创建的二叉树 3.创建二...

  • 二叉树总结(Python)

    一、创建 二叉树结点类的定义: 使用结点类可以直接创建一颗小型的二叉树做测试用: 1、从列表创建一颗二叉树 假设列...

  • 线索二叉树操作

    树节点 创建中序线索二叉树 遍历中序线索二叉树 创建前序线索二叉树 遍历前序线索二叉树 参考:https://bl...

  • 二叉树的递归遍历+非递归遍历,Swift实现

    定义二叉树模型 创建二叉树: 创建的二叉树如下: 这个二叉树的遍历分别为: 先序遍历: 124536 中序遍历:4...

  • 二叉树操作

    1、定义二叉树 2、创建二叉树 3、计算二叉树的深度 4、计算二叉树的节点 5、前序遍历 6、中序遍历 7、后序遍...

  • 二叉树的总结

    1、二叉树的数据结构 2、二叉树的创建 树的结构: 输入:AB#C##D## ; 3、二叉树的遍历 二叉树的遍历分...

  • 二叉树 基础操作

    二叉树的使用 二叉树结构 先序创建二叉树 DFS 先序遍历二叉树 中序遍历二叉树 后序遍历二叉树 BFS 层次遍历...

网友评论

    本文标题:二叉树(1)- 创建二叉树

    本文链接:https://www.haomeiwen.com/subject/fajluttx.html