前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >二叉树基础知识

二叉树基础知识

作者头像
小飞侠xp
发布2018-08-29 12:48:30
2310
发布2018-08-29 12:48:30
举报

树是n(n>=0)个节点的有限集,且这些节点满足如下关系: (1)有且仅有一个节点没有父结点,该节点称为树的根。 (2)除根外,其余的每个节点都有且仅有一个父结点。 (3)树中的每一个节点都构成一个以它为根的树。 二叉树在满足树的条件时,满足如下条件: 每个节点最多有两个孩子(子树),这两个子树有左右之分,次序不可颠倒。

二叉树构造
代码语言:javascript
复制
#include<stdio.h>
struct TreeNode{
    int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode(int x) : val(x),left(NULL),right(NULL){}
};
void preorder_print(TreeNode *node, int layer){
    if(!node){
        return;
    }
    for(int i = 0; i < layer; i++){
    }
    printf("{%d}\n",node->val);
    preorder_print(node->left, layer + 1);//遍历左子树,层数+1
    preorder_print(node->right, layer + 1);//遍历右子树,层数+1
}
int main(){
    TreeNode a(1);
    TreeNode b(2);
    TreeNode c(5);
    TreeNode d(3);
    TreeNode e(4);
    TreeNode f(6);
    a.left = &b;
    a.right = &c;
    b.left = &d;
    b.right = &e;
    c.right = &f;
    preorder_print = (&a,0);
    return 0;
}
二叉树的深度遍历

1.前序遍历:a(1),b(2),c(3),d(4),e(5),f(6) 2.中序遍历:3,2,4,1,5,6 3.后续遍历:3,4,2,6,5,1

代码语言:javascript
复制
void traversal_qian(TreeNode * node, int layer){
    if(!node){
        return;
    }
for(int i = 0;i < layer;i++){
    printf("-----");
}
printf("[%d\n]",node->val);
traversal_qian(node->left, layer +1);
traversal_qian(node->right,layer+1);
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.03.16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 二叉树构造
  • 二叉树的深度遍历
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档