NO 9判斷整數序列是不是二元查詢樹的後序遍歷結果

2021-06-22 04:57:32 字數 894 閱讀 8526

題目部落格:

題目:題目:輸入乙個整數陣列,判斷該陣列是不是某二元查詢樹的後序遍歷的結果。

如果是返回true,否則返回false。

例如輸入5、7、6、9、11、10、8,由於這一整數序列是如下樹的後序遍歷結果:

8/  /

6    10

/ /  / /

5  7 9  11

因此返回true。

如果輸入7、4、6、5,沒有哪棵樹的後序遍歷的結果是這個序列,因此返回false。

**為:

#coding=utf-8

class treenode:

def __init__(self,value,leftchild=none,rightchild=none):

self.value=value

self.leftchild,self.rightchild=leftchild,rightchild

def iscantree(*inlist):

if not inlist:#列表非空

return true

root=inlist[-1]#最後乙個肯定為根節點

leftchildlist=#左孩子節點比根節點小

gt_index=0

for index,value in enumerate(inlist):

if value>=root:

gt_index=index

break

else:

right_child_list=inlist[gt_index:-1]

flag=true

for gtvalue in right_child_list:#如果在右孩子節點找到比根節點小的節點。就說明不是前序遍歷

if gtvalue

第9題 判斷整數序列是不是二元查詢樹的後序遍歷結果

例如輸入5 7 6 9 11 10 8,由於這一整數序列是如下樹的後序遍歷結果 因此返回true。如果輸入7 4 6 5,沒有哪棵樹的後序遍歷的結果是這個序列,因此返回false。由於二叉查詢樹的特性 左子樹的值小於根節點,右子樹的值大於根節點 結合後序序列,可以找到一顆二叉查詢樹。有點類似於快速排...

判斷整數序列是不是二元查詢樹的後序遍歷結果

二叉查詢樹 binary search tree 或者是一棵空樹,或者是具有下列性質的二叉樹 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 若它的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值 它的左 右子樹也分別為二叉排序樹。post order 先訪問左節點,再訪問右節點...

判斷整數序列是不是二元查詢樹的後序遍歷結果

第9題 判斷整數序列是不是二元查詢樹的後序遍歷結果 題目 輸入乙個整數陣列,判斷該陣列是不是某二元查詢樹的後序遍歷的結果。如果是返回true,否則返回false。例如輸入5 7 6 9 11 10 8,由於這一整數序列是如下樹的後序遍歷結果 8 6 10 5 7 9 11 因此返回true。如果輸入...