問題描述:
/*
01.
02.
05.*檔名稱: painc.cpp
06.*作 者: 田**
07.*完成日期:2023年11月9日
08.*版 本 號:v1.0
09.*
10.*問題描述: 二叉樹的鏈式儲存及基本運算
11.*程式輸出:
*/
程式介紹:
標頭檔案:
#ifndef btree_h_included
#define btree_h_included
#define maxsize 100
typedef char elemtype;
typedef struct node
btnode;
void createbtnode(btnode *&b,char *str); //由str串建立二叉鏈
btnode *findnode(btnode *b,elemtype x); //返回data域為x的節點指標
btnode *lchildnode(btnode *p); //返回*p節點的左孩子節點指標
btnode *rchildnode(btnode *p); //返回*p節點的右孩子節點指標
int btnodedepth(btnode *b); //求二叉樹b的深度
void dispbtnode(btnode *b); //以括號表示法輸出二叉樹
void destroybtnode(btnode *&b); //銷毀二叉樹
#endif // btree_h_included
主函式:
#include #include "btree.h"
int main()
else
printf(" 未找到!");
printf("\n");
printf(" (4)二叉樹b的深度:%d\n",btnodedepth(b));
printf(" (5)釋放二叉樹b\n");
destroybtnode(b);
return 0;
}
執行函式:
#include #include #include "btree.h"
void createbtnode(btnode *&b,char *str) //由str串建立二叉鏈}}
j++;
ch=str[j];
}}btnode *findnode(btnode *b,elemtype x) //返回data域為x的節點指標
}btnode *lchildnode(btnode *p) //返回*p節點的左孩子節點指標
btnode *rchildnode(btnode *p) //返回*p節點的右孩子節點指標
int btnodedepth(btnode *b) //求二叉樹b的深度
}void dispbtnode(btnode *b) //以括號表示法輸出二叉樹
}}void destroybtnode(btnode *&b) //銷毀二叉樹
}
執行結果:
二叉樹的鏈式儲存
實現二叉樹的基本操作 建立 遍歷 計算深度 結點數 葉子數等。輸入c,先序建立二叉樹,表示空節點 輸入h 計算二叉樹的高度 輸入l 計算二叉樹的葉子個數 輸入n 計算二叉樹節點總個數 輸入1 先序遍歷二叉樹 輸入2 中序遍歷二叉樹 輸入3 後續遍歷二叉樹 輸入f 查詢值 x的節點的個數 輸入p 以縮...
二叉樹的鏈式儲存
若用鍊錶儲存一棵二叉樹時,每個結點除資料域外,還有指向左孩子和右孩子的兩個指 針。在這種儲存結構中,n個結點的二叉樹共有 個指標域,其中有 個指標域是存放了位址,有 個指標是空指標。因為有n個節點,每個節點都存了乙個lchild,乙個rchild,所以共2n個指標域。因為除了根節點,其他所有的節點都...
二叉樹鏈式儲存操作
前言 二叉樹的儲存結構 1.二叉樹的順序儲存結構 利用性質5,對於完全二叉樹可以利用一維陣列儲存,如果不是完全二叉樹,則可以補空節點,使成為完全二叉樹在進行儲存,但是對於非完全二叉樹,可能要浪費很多的空間。2.二叉樹的鏈式儲存結構 二叉樹的鏈式儲存結構就是用指標建立二叉樹中節點之間的關係,二叉樹最常...