二叉樹的相關題目

2021-10-01 04:22:40 字數 2140 閱讀 6300

目錄

1、求二叉樹的遍歷順序為自下至上,自右至左的層序遍歷序列

2、判斷二叉樹是否為完全二叉樹

3、統計二叉樹中雙分支結點的個數

4、求先序遍歷序列中第k個結點的值

5、求二叉樹的高度

6、判斷二叉樹是否為二叉排序樹

7、求出二叉排序樹中結點所在的層數

演算法思想:使用層序遍歷。二叉樹正常的層序遍歷順序是自上至下,自左向右的順序,與題目要求剛好相反,使用乙個棧,將正常的層序遍歷序列取逆即可。

void levelorder(bitree bt)

//while

while(!isempty(s))

//while

}//void

演算法思想:使用層序遍歷。將結點全部入隊,空結點也需要入隊。當遇到空結點時,就檢視隊中剩餘結點是否有非空結點,若有,則該二叉樹不是完全二叉樹,若無,則是完全二叉樹。

bool levelorder(bitree bt)

else

}//else

}//while

return true;

}//void

遞迴

演算法思想:

int  dsonnodes(bitree bt)

非遞迴

演算法思想:使用層序遍歷。設定乙個變數,用來記錄雙分支結點的個數。判斷雙分支節點就是判斷左右子樹是否為空,當遇到乙個雙分支結點時,使該變數加一,遍歷結束時返回該變數即可。

int dsonnodes(bitree bt)

//while

return count;

}//void

遞迴

演算法思想:先序遞迴遍歷,設定乙個全域性變數,記錄當前結點的序號,當訪問到第k個結點時,返回該結點的值。。

int i = 1;

elemtype prenode(bitree bt, int k)

非遞迴

演算法思想:使用先序遍歷。設定乙個變數,用來記錄當前訪問的結點序號,當訪問到第k個結點時,返回該結點的值。

elemtype preorder2(bitree bt, int k)

//while

return " ";//k大於二叉樹中結點個數時,返回" ";

}//void

遞迴

演算法思想:如果樹為空,則返回0。否則,遞迴計算左子樹右子樹的高度,然後比較左右子樹的高度,返回高度較大值加一。

int btdepth(bitree bt)

非遞迴

演算法思想:使用層序遍歷。設定變數level用來記錄當前結點所在的層數,設定變數last用來記錄當前層最右結點,每次層序遍歷出隊時與last指標比較,若相等,則層數加一,並讓last指向下一層的最右節點。直到遍歷結束,返回變數level。

int btdepth2(bitree bt)

}//while

return level;

}//void

演算法思想:對二叉樹進行中序遍歷,若能始終保持前乙個數比後乙個數小,則說明是二叉排序樹。

遞迴

keytype predt = -32767;

int judgebst(bitree bt)

//else

}//int

非遞迴

bool judgebst(bitree bt)

else

}//while

dequeue(q,temp);

while(!isempty(q))

else

return false;

}//while

return true;

}//bool

演算法思想:與二叉排序樹的查詢很像,只是需要加乙個變數記錄當前結點的層數。

int level(bitree bt, bstnode *p)

return n;

}

LeetCode 二叉樹相關題目

class solution private 遞迴的方法 void inorder treenode root,vector int nodes inorder root left,nodes nodes.push back root val inorder root right,nodes 非遞迴...

6 二叉樹相關題目

目錄 nc5 二叉樹根節點到葉子節點和為指定值的路徑 思路 先序遍歷的思想 根左右 數字求和 每一層都比上層和 10 當前根節點的值 nc6 二叉樹的最大路徑和 思路1 遞迴樹的節點 思路2 層序遍歷 nc8 二叉樹根節點到葉子節點和為指定值的路徑 思路 樹的深度優先遍歷dfs nc9 二叉樹中是否...

二叉樹的相關的各種題目

二叉樹是每個結點最多有兩個子樹的樹結構。通常子樹被稱作 左子樹 left subtree 和 右子樹 一棵深度為k,且有 2 k 1個結點的二叉樹,稱為滿二叉樹。最少結點為k,為斜二叉樹。了解了什麼是二叉樹後,自然要懂得它的三種遍歷方法。前序 先序 中 左 右 中序 左 中 右 後序 左 右 中。中...