如何把乙個有序的整數陣列放到二叉樹中

2021-10-09 04:29:04 字數 933 閱讀 1046

思路

如何將陣列放進去,就要用到遞迴的思想啦。將陣列分成兩部分一部分構成左子樹,一部分構成右子樹。

如【1,2,3,4,5,6,7,8,9,10】

6

1,2,3,4,5                       7,8,9,10

6

3                   9

12         45        78    10

以此類推。便可以構成二叉樹了

class

btree()

:def

__init__

(self)

: self.data=

none

self.lchild=

none

self.rchild=

none

defarrtotree

(arr,start,end)

: t=btree(

)if start>=end:

####千萬要有等號,加入沒有等號,會損失一層,

#同時這也是遞迴結束的條件。

mid=

int(

(start+end+1)

/2) t.data=arr[mid]

t.lchild=arrtotree(arr,start,mid-1)

t.rchild=arrtotree(arr,mid+

1,end)

else

: t=

none

return t

怎樣編寫乙個程式,把乙個有序整數陣列放到二叉樹中

分析 本題考察二叉搜尋樹的建樹方法,簡單的遞迴結構。關於樹的演算法設計一定要聯想到遞迴,因為樹本身就是遞迴的定義。而,學會把遞迴改稱非遞迴也是一種必要的技術。畢竟,遞迴會造成棧溢位,關於系統底層的程式中不到非不得以最好不要用。但是對某些數學問題,就一定要學會用遞迴去解決。include includ...

把乙個有序整數陣列放到二叉樹中

include stdio.h include stdlib.h include string.h struct student void arraytotree int a,int len,struct student p else void display tree struct student...

乙個整數陣列中最大字陣列二

返回整數陣列中最大子陣列的和2 1.題目 返回乙個整數陣列中最大子陣列的和。2.要求 1 要求程式必須能處理1000個元素 2 每個元素都是int32型別的。3.設計思路 處理1000個元素時讓使用者自己輸入想要的陣列長度,看看執行時出處理時間的長短,再在源程式中改善這一問題。處理大數溢位時,由於隨...