二叉樹的基本操作
二叉樹的遍歷(前/中/後/層,遞迴&非遞迴)
**中用到的棧
**中用到的佇列
面試題拷貝二叉樹
判斷一棵二叉樹是否是完全二叉樹
二叉樹的映象遞迴
二叉樹的映象非遞迴
求二叉樹中結點的個數
獲取二叉樹中葉子結點的個數
求二叉樹中k層結點的個數
求二叉樹的高度
查詢值為data的結點
判斷乙個結點是否在二叉樹裡
1、拷貝二叉樹
pbtnode copybintree(pbtnode proot)
return pnewroot;
}
2、判斷一棵二叉樹是否是完全二叉樹
- **如下
int iscompletebintreenode(pbtnode proot)
else
else
if (pcur->pleft)
else
if (pcur->pright)
else
}queuepop(&q);
}queuedestory(&q);
return
0;}
3、二叉樹的映象遞迴
void mirrorbintree(pbtnode proot)
}
4、二叉樹的映象非遞迴
void mirrorbintreenor(pbtnode proot)
queuedestory(&q);
}
5、求二叉樹中結點的個數
int bintreesize(pbtnode proot)
6、獲取二叉樹中葉子結點的個數
int getleafcount(pbtnode proot)
7、求二叉樹中k層結點的個數
int getklevelnode(pbtnode proot, int k)
8、求二叉樹的高度
int height(pbtnode proot)
9 、查詢值為data的結點pbtnode findnode(pbtnode proot, btdatatype data)
10. 判斷乙個結點是否在二叉樹裡int isbintreenode(pbtnode proot, pbtnode pnode)
二叉樹經典面試題
以下二叉樹的結點型別如下 templatet struct binarytreenode 求二叉樹中兩個節點的最近公共祖先 分析 求兩個結點的最近公共祖先有兩種情況。1 如果這兩個結點不在一條線上,則它們就分別在最近的公共祖父的左右子樹上。2 如果這兩個結點在一條線上,則它們之中深度最前的就是他們的...
經典二叉樹面試題
包括建立銷毀二叉樹,層序遍歷二叉樹,求二叉樹的葉子節點,求二叉樹第 k層的節點個數,求二叉樹的高度等 include include template struct binarytreenode template class binarytree 建構函式 binarytree const t a,...
二叉樹經典面試題
二叉樹的結點型別如下 typedef struct btnode btnode,binarytree 1.給你一顆普通的二叉樹,求二叉樹中最遠的兩個節點的距離分析 1 如果具有最遠距離的兩個結點之間的路徑經過根結點,則最遠距離就是這個根節點左邊的深度加上根節點的右邊的深度。2 如果具有最遠距離的兩個...