題目如下:
我就隨便寫了寫,還用的上次的函式就可以。
以下是我的實現:
#include #include struct binarytreenode
;struct binarytree
;void run();
struct binarytreenode *createnewtree();
struct binarytreenode *createnewnode();
struct binarytreenode *getnode(int num);
void merge(struct binarytreenode *root);
void cutinnode(int num);
void print(struct binarytreenode *root);
struct binarytree t1, t2, t3;
int main()
void run()
struct binarytreenode *createnewtree()
struct binarytreenode *createnewnode()
struct binarytreenode *getnode(int num)
else
}}void merge(struct binarytreenode *root)
void cutinnode(int num)
}void print(struct binarytreenode *root)
以下是各函式的注釋:
void run()
//遞迴建立樹
struct binarytreenode *createnewtree()
//建立節點
struct binarytreenode *createnewnode()
//尋找待插入的插入位置
struct binarytreenode *getnode(int num)
else}}
//前序遍歷合併
void merge(struct binarytreenode *root)
//插入
void cutinnode(int num)
}
//中序遍歷輸出
void print(struct binarytreenode *root)
以上就是我的實現。 NOJ 二叉排序樹的插入和刪除 西工大資料結構
周二就寫完了,找bug找了很長時間,今天有空了,發出來。題目如下 構建二叉排序樹,找後繼線索鍊錶,插入都還可以,基本操作,就是這個刪除比較麻煩,好多種情況,而且他居然每次都是對原二叉樹進行插入刪除,輸出之後還得刪除和插入回去,真的是閒的。找後繼採用棧的方法就可以了,插入就和查詢差不多,只不過插入是找...
NOJ 建立二叉樹的二叉鍊錶 西工大資料結構
分析一下題目,就是用前序和中序拼乙個二叉樹出來,再後序輸出。建立二叉樹時,前序中第乙個資料肯定是根節點,然後在中序中這個資料肯定把中序序列分成左半部分和右半部分,左半部分就是這個資料節點的左支,右半部分就是右支,然後再對左支和右支建立二叉樹,構成乙個遞迴。則abcde badce,可轉化成以下二叉樹...
NOJ 計算二叉樹葉子節點數目 西工大資料結構
今天晚上沒啥事,洗了洗澡,吃了點東西,又寫了一道,感覺和上一道比較類似。題目如下 分析一下題目,它是將乙個先序的一串資料整到二叉樹裡,再找出它的葉節點有幾個。輸入我決定採用遞迴的方法,每次讀入乙個資料,若是字母說明他是乙個根節點,若是 說明上個節點沒有當前分支,返回null即可。由此,ab 可轉換成...