每天一道演算法題(2019 2 24)

2021-09-11 07:06:02 字數 1343 閱讀 8977

q: 假設我們有binary search tree (bst), 請寫出search, insert, printorder, printmax 函式

二叉搜尋樹(bst)基本特性:

python **:

class node():

def __init__(data, self):

self.data = data

self.rightchild = none

self.leftchild = none

def search(self, newdata):

if newdata == self.data:#如果所查詢的數為當前節點,則找到

return self.data

elif newdata > self.data:#如果所查詢的數大於當前節點,則往右找

if self.rightchild == none:#如果右邊沒有,則找不到,否則再重複查詢過程

return false

else:

return self.rightchild.search(newdata)

else:

if self.leftchild == none:

return false

else:

return self.leftchild.search(newdata)

def insert(self, newdata):

if newdata == self.data: #不能插入重複數

return false

elif newdata > self.data: #如果大於節點,往右走;反之往左走

if self.rightchild == none:#如果沒有右節點,新資料成為乙個新的右節點

self.rightchild = node(newdata)

else:

self.rightchild.insert(newdata)

else:

if self.leftchild == none:#如果沒有左節點,新資料成為乙個新的左節點

self.leftchild = newdata

else:

self.leftchild.insert(newdata)

def printorder(self):#按從小到大排序列印

if self.leftchild:

self.leftchild.printorder()

print(self.data)

if self.rightchild:

self.rightchild.printorder()

每天一道演算法題

no.1 棧是特殊的線性表,它。a.對 b.錯答案 錯,它的插入和刪除都是在同一端進行的。no.2 n個葉子節點的滿二叉樹 除了葉子節點,每個節點都有兩個孩子 總共有多少個節點?a.2n 1 b.2n c.n 1 d.n答案 a 滿二叉樹我們講過了,度為0的節點比度為2的加點多乙個。滿二叉樹是特殊的...

每天一道演算法題

1.給定乙個只包括 的字串,判斷字串是否匹配。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。思路 正確思路 不需要考慮輸入內容是否合法,這只是做題,不是工程 定義乙個字典,後括號為鍵,前半部分為值 定義乙個元素儲存棧頂,注意這個設定,取棧...

每天一道演算法題

1 js計算某個字串出現的次數 j ascript計算乙個字串最多重複的字元及出現次數.var str zhaochucichuzuiduodezifu var o for var i 0,length str.length i length i else console.log o 輸出的是完整的...