二叉樹是每個結點最多有兩個子樹的樹結構。通常子樹被稱作「左子樹」(left subtree)和「右子樹」(right subtree)。二叉樹常被用於實現二叉查詢樹和二叉堆。
一棵深度為k,且有2^k-1個節點的二叉樹,稱為滿二叉樹。這種樹的特點是每一層上的節點數都是最大節點數。而在一棵二叉樹中,除最後一層外,若其餘層都是滿的,並且最後一層或者是滿的,或者是在右邊缺少連續若干節點,則此二叉樹為完全二叉樹。具有n個節點的完全二叉樹的深度為floor(log2n)+1。深度為k的完全二叉樹,至多有2k-1個葉子節點,至多有2k-1個節點。
#include#include#include
using
namespace
std;
typedef
inttelemtype;
//定義二叉樹節點
typedef struct
binarytreenodenode;
//建立二叉樹,中左右;
node*creatbinarytree()
return
p; }/*
***遞迴遍歷****
*/void preordertr**erse(node*root)
}void inordertr**erse(node*root)
}void lastordertr**erse(node*root)
}int nodenum(node* root)//
二叉樹節點數目
int depthoftree(node *root)//
樹的深度;
int leafnum(node* root)//
葉子節點數目
else
}int
main()
二叉樹的非遞迴遍歷
二叉樹的建立及其遍歷
include include struct bintree typedef struct bintree bintreenode typedef struct node pnode 棧的儲存結構 struct node struct linkstack 鏈結棧型別定義 typedef struct...
二叉樹及其遍歷
滿二叉樹肯定是完全二叉樹,完全二叉樹不一定是滿二叉樹 二叉樹的遍歷 先序遍歷 也叫做先根遍歷 前序遍歷,首先訪問根結點然後遍歷左子樹,最後遍歷右子樹。在遍歷左 右子樹時,仍然先訪問根結點,然後遍歷左子樹,最後遍歷右子樹,如果二叉樹為空則返回。中序遍歷 首先遍歷左子樹,然後訪問根結點,最後遍歷右子樹。...
二叉樹及其遍歷
二叉樹是乙個很重要的儲存結構,所以和大家分享一下我對二叉樹的理解並結合 希望讓大家都能對二叉樹有乙個最清晰的認識 首先,二叉樹是每個節點最多有兩個子樹的樹結構,這是二叉樹的定義,二叉樹的結構如下圖 可以看到二叉樹必要的是根節點,也就是a,每個節點都會有左子節點和右子節點,那麼從b開始看,它又是乙個二...