二叉樹練習

2021-10-04 22:07:46 字數 948 閱讀 8271

#pragma once

#include #include #include #include typedef int btdatatype;

typedef struct btnodebtnode;

``btnode* buynode(btdatatype val)

pnewnode->left = null;

pnewnode->right = null;

pnewnode->val = val;

return pnewnode;

}btnode* creatbintree()

//前序遍歷

void preorder(btnode* proot)

}//中序遍歷

void inorder(btnode* proot)

}//序後遍歷

void postorder(btnode* proot)

}//獲取節點的個數

int bintreesize(btnode* proot)

//獲取葉子節點的個數

int getleafcount(btnode* proot)

//獲取樹的高度

int getheight(btnode* proot)

//獲取k層節點的個數

int getklevelcount(btnode* proot,int k)

//返回x在二叉樹的中的節點

btnode* find(btnode* proot, btdatatype val)

//獲取節點的雙親

btnode* getparent(btnode* proot,btnode* pnode)

//二叉樹的層序遍歷

void levelorder(btnode* proot)

printf("\n");}[

](

二叉樹練習

題目 給定兩個二叉樹,想象當你將它們中的乙個覆蓋到另乙個上時,兩個二叉樹的一些節點便會重疊。你需要將他們合併為乙個新的二叉樹。合併的規則是如果兩個節點重疊,那麼將他們的值相加作為節點合併後的新值,否則不為 null 的節點將直接作為新二叉樹的節點。示例 1 輸入 tree 1 tree 2 1 2 ...

二叉樹各種練習

public class binarytree 題目沒有任何背景,只是方便生成二叉樹,用來做試驗。備註 所有方法都是在乙個類中的,所以裡面的root是全域性變數。public void convert int nums if top 0 while top 0 s null return resul...

二叉樹 二叉樹

題目描述 如上所示,由正整數1,2,3 組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n 12,m 3那麼上圖中的結點13,14,15以及後面的結點都是不存在的,結點m所在子樹中包括的結點有3,6,7,12,因此結點m的所在子樹...