二叉樹基礎(chǔ)知識

樹是n(n>=0)個(gè)節(jié)點(diǎn)的有限集,且這些節(jié)點(diǎn)滿足如下關(guān)系:
(1)有且僅有一個(gè)節(jié)點(diǎn)沒有父結(jié)點(diǎn),該節(jié)點(diǎn)稱為樹的根。
(2)除根外,其余的每個(gè)節(jié)點(diǎn)都有且僅有一個(gè)父結(jié)點(diǎn)。
(3)樹中的每一個(gè)節(jié)點(diǎn)都構(gòu)成一個(gè)以它為根的樹。
二叉樹在滿足樹的條件時(shí),滿足如下條件: 每個(gè)節(jié)點(diǎn)最多有兩個(gè)孩子(子樹),這兩個(gè)子樹有左右之分,次序不可顛倒。


二叉樹構(gòu)造
#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);//遍歷左子樹,層數(shù)+1
    preorder_print(node->right, layer + 1);//遍歷右子樹,層數(shù)+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.后續(xù)遍歷:3,4,2,6,5,1

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);
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 樹的概述 樹是一種非常常用的數(shù)據(jù)結(jié)構(gòu),樹與前面介紹的線性表,棧,隊(duì)列等線性結(jié)構(gòu)不同,樹是一種非線性結(jié)構(gòu) 1.樹的定...
    Jack921閱讀 4,773評論 1 31
  • 樹的定義 樹是n(n>=0)個(gè)元素的的有限集合。在任何一顆非空樹中: 有且僅有一個(gè)節(jié)點(diǎn)被稱為根節(jié)點(diǎn),在整棵樹最上面...
    隨時(shí)學(xué)丫閱讀 1,366評論 0 0
  • B樹的定義 一棵m階的B樹滿足下列條件: 樹中每個(gè)結(jié)點(diǎn)至多有m個(gè)孩子。 除根結(jié)點(diǎn)和葉子結(jié)點(diǎn)外,其它每個(gè)結(jié)點(diǎn)至少有m...
    文檔隨手記閱讀 13,692評論 0 25
  • 數(shù)據(jù)結(jié)構(gòu)和算法--二叉樹的實(shí)現(xiàn) 幾種二叉樹 1、二叉樹 和普通的樹相比,二叉樹有如下特點(diǎn): 每個(gè)結(jié)點(diǎn)最多只有兩棵子...
    sunhaiyu閱讀 6,706評論 0 14
  • 四、樹與二叉樹 1. 二叉樹的順序存儲結(jié)構(gòu) 二叉樹的順序存儲就是用數(shù)組存儲二叉樹。二叉樹的每個(gè)結(jié)點(diǎn)在順序存儲中都有...
    MinoyJet閱讀 1,744評論 0 7

友情鏈接更多精彩內(nèi)容