99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

python怎么實現二叉查找樹-創新互聯

這篇文章主要介紹了python怎么實現二叉查找樹,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

成都創新互聯專注于企業營銷型網站建設、網站重做改版、陽新網站定制設計、自適應品牌網站建設、H5建站電子商務商城網站建設、集團公司官網建設、外貿網站建設、高端網站制作、響應式網頁設計等建站業務,價格優惠性價比高,為陽新等各大城市提供網站開發制作服務。

具體介紹及實現如下。

1. 二叉查找樹的定義:

左子樹不為空的時候,左子樹的結點值小于根節點,右子樹不為空時,右子樹的結點值大于根節點,左右子樹分別為二叉查找樹

2. 二叉查找樹的最左邊的結點即為最小值,要查找最小值,只需遍歷左子樹的結點直到為空為止,同理,最右邊的結點結尾大值,要查找大值,只需遍歷右子樹的結點直到為空為止。二叉查找樹的插入查找和刪除都是通過遞歸的方式來實現的,刪除一個結點的時候,先找到這個結點S,如果這個結點左右孩子都不為空,這時并不是真正的刪除這個結點S,而是在其右子樹找到后繼結點,將后繼結點的值付給S,然后刪除這個后繼結點即可。如果結點S的左孩子或者右孩子為空,可以直接刪除這個結點S。

3. 二叉查找樹的python實現:

class TreeNode: 
  def __init__(self,val): 
    self.val=val; 
    self.left=None; 
    self.right=None; 
def insert(root,val): 
  if root is None: 
    root=TreeNode(val); 
  else: 
    if val<root.val: 
      root.left=insert(root.left,val);  #遞歸地插入元素 
    elif val>root.val: 
      root.right=insert(root.right,val);  
  return root; 
 
def query(root,val): 
  if root is None: 
    return ; 
  if root.val is val: 
    return 1; 
  if root.val <val: 
    return query(root.right,val); #遞歸地查詢 
  else:  
    return query(root.left,val); 
def findmin(root): 
  if root.left: 
    return findmin(root.left); 
  else: 
    return root; 
   
def delnum(root,val): 
  if root is None: 
    return ; 
  if val<root.val: 
    return delnum(root.left,val); 
  elif val>root.val: 
    return delnum(root.right,val); 
  else:                       # 刪除要區分左右孩子是否為空的情況 
    if(root.left and root.right): 
       
      tmp=finmin(root.right);       #找到后繼結點 
      root.val=tmp.val; 
      root.right=delnum(root.right,val);  #實際刪除的是這個后繼結點 
       
    else: 
      if root.left is None: 
        root=root.right; 
      elif root.right is None: 
        root=root.left; 
  return root; 
         
         
#測試代碼       
root=TreeNode(3); 
root=insert(root,2); 
root=insert(root,1); 
root=insert(root,4); 
 
#print query(root,3); 
print query(root,1); 
root=delnum(root,1); 
print query(root,1);

結果:

1
None
>>>

感謝你能夠認真閱讀完這篇文章,希望小編分享的“python怎么實現二叉查找樹”這篇文章對大家有幫助,同時也希望大家多多支持創新互聯成都網站設計公司,關注創新互聯成都網站設計公司行業資訊頻道,更多相關知識等著你來學習!

另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、網站設計器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

標題名稱:python怎么實現二叉查找樹-創新互聯
文章鏈接:http://www.yijiale78.com/article0/docsoo.html

成都網站建設公司_創新互聯,為您提供電子商務軟件開發網站收錄全網營銷推廣Google微信公眾號

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

手機網站建設