NOJ 二叉排序樹的歸併 西工大資料結構

2021-08-20 06:16:09 字數 1484 閱讀 5255

題目如下:

我就隨便寫了寫,還用的上次的函式就可以。

以下是我的實現:

#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 可轉換成...