二叉樹的簡單操作

2021-08-14 09:47:47 字數 1509 閱讀 9014

一,定義:

在電腦科學中,二叉樹是每個節點最多有兩個子樹的樹結構。通常子樹被稱作「左子樹」(left subtree)和「右子樹」(right subtree)。二叉樹常被用於實現二叉查詢樹和二叉堆。

二,特點

1,二叉樹的每個結點至多只有二棵子樹(不存在度大於2的結點),。

2,二叉樹的子樹有左右之分,次序不能顛倒。

3,二叉樹的第i層至多有2^個結點;

3,深度為k的二叉樹至多有2^k-1個結點;

4,對任何一棵二叉樹t,如果其終端結點數為n_0,度為2的結點數為n_2,則n_0=n_2+1。

5,一棵深度為k,且有2^k-1個節點稱之為滿二叉樹;

6,深度為k,有n個節點的二叉樹,當且僅當其每乙個節點都與深度為k的滿二叉樹中,序號為1至n的節點對應時,稱之為完全二叉樹。

三,基本操作

#include#includeusing namespace std;

#define max 10

typedef struct node

node;

typedef node* pnode;

class binarytree

/*binarytree(binarytree&tree)

}*/~binarytree()

void preorder()

void inorder()

void postorder()

void levelorder()//層序遍歷

//void swapchild(pnode root**);

//void leverorder(pnode root*);

int nodeheight()//計算二叉樹高度

void showleaf()

//檢查二叉樹是否包含資料aim,有則返回其指標

pnode findnode(char ch)

protected:

pnode create(char* str,int size,int& index)

return pnode;

} void distroy(pnode root)

}void my_preorder(pnode root) }

void my_inorder(pnode root) }

void my_postorder(pnode root) }

void my_levelorder(pnode root)

}int my_nodeheight(pnode root)//計算二叉樹高度 }

void my_showleaf(pnode root) }

//檢查二叉樹是否包含資料aim,有則返回其指標

pnode my_findnode(pnode & root, char ch)

}}private:

pnode root;

int size;

};int main(void)

二叉樹的簡單操作

define crt secure no warnings define m 100 typedef char datatype typedef struct node 二叉鍊錶的結構體 bitnode,bitree define queue size 100 typedef bitree queu...

二叉樹的簡單操作

define crt secure no warnings define m 100 typedef char datatype typedef struct node 二叉鍊錶的結構體 bitnode,bitree define queue size 100 typedef bitree queu...

二叉樹 二叉樹的相關操作

遞迴實現 建立求樹高 求葉子數 求節點數 統計度為2的結點個數 後序輸出 先序輸出 中序輸出 交換左右子樹 include include include define true 1 define false 0 define ok 1 define error 0 define overflow ...