#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的所在子樹...