大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java基礎學習:java遞歸算法

Java基礎學習:java遞歸算法

更新時間:2020-03-19 13:16:57 來源:動力節點 瀏覽2363次


  與數組和鏈表不同,二叉樹有幾種遍歷方式。遍歷算法大致分為深度優先和廣度優先遍歷算法,這取決于算法實際如何工作。顧名思義,深度優先在訪問同級別兄弟之前先向二叉樹縱深訪問,而廣度優先是先訪問同一級別中的所有節點然后再進入下一級別,因此它也被稱為級別順序遍歷。PreOrder和InOrder樹遍歷算法都是深度優先的,預序和中序算法之間的唯一區別是訪問二叉樹的根,左節點和右節點的順序。


  InOrder遍歷算法首先訪問左節點,然后是root節點,最后是右節點。這與首先訪問根的預序遍歷不同。InOrder遍歷的一個重要特性是,如果給定的二叉樹是二叉搜索樹,它將按排序順序打印節點。


  請記住,如果左子樹中的所有節點都低于root并且右子樹中的所有節點都大于root,則二叉樹稱為二叉搜索樹。


  在示例中,使用二叉搜索樹來演示InOrder樹遍歷以排序順序打印二叉樹的節點,并分享了這個問題的遞歸和迭代解決方案。從面試的角度來看,這非常重要。即使遞歸解決方案更容易,占用更少的代碼行,并且更具可讀性,您也應該知道如何在沒有Java遞歸的情況下遍歷二叉樹,以便在編程面試中做得更好。


  Java中InOrder遍歷二叉樹-遞歸

  

  由于二叉樹是遞歸數據結構,因此遞歸是解決基于樹的問題的最佳方法。以下是二叉樹InOrder遍歷的步驟:


  訪問左節點


  訪問root


  訪問右節點


  要實現此算法,您可以使用InOrder遍歷編寫一個方法來遍歷二叉樹的所有節點,方法如下:


  在inOrder(TreeNode節點)中編寫方法


  檢查node==null,如果是,則返回,這是我們的基本情況。


  調用inOrder(node.left)以遞歸方式訪問左子樹


  打印節點的值


  調用inOrder(node.right)以遞歸方式遍歷右子樹。


  這將按照InOrder遍歷打印二叉樹的所有節點。如果二叉樹是二叉搜索樹,則樹的所有節點將按排序順序打印。這是一種在Java中實現InOrder算法的方法:


Java基礎學習:java遞歸算法


  該方法是私有方法,因為它是通過另一個公共方法inorder()公開的,后者不需要來自客戶端的參數。這是一個facade模式的例子,它使客戶端的方法更簡單。遞歸算法很容易理解,深入到左子樹,直到找到葉節點。一旦找到,遞歸堆棧就開始展開,打印節點數據并開始探索右子樹。


  Java中InOrder遍歷二叉樹-迭代


  您可以使用堆棧將遞歸的順序算法轉換為迭代的順序算法。。沒有遞歸的解決方案雖然不容易閱讀,但也不是很難理解。我們從根和進程開始,直到當前節點或Stack不為空。我們開始從左子樹推節點,直到到達葉節點。此時,我們pop()最后一個元素,打印它的值,并通過指定current=current.right開始探索右子樹。這將一直持續到堆棧變空為止,此時,二叉樹的所有元素都被訪問,樹遍歷完成。


Java基礎學習:java遞歸算法


  因為我們的二叉樹是一個二叉搜索樹,所以可以看到它們是按排序順序打印的。


  

    以上就是動力節點Java培訓機構小編介紹的“Java基礎學習:java遞歸算法”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 草莓视频一区二区精品 | 亚洲中字幕 | 一级成人毛片免费观看 | 色婷婷综合久久久久中文 | 农村妇女又色黄一级毛片 | 色99色| 成人小视频在线观看 | 香蕉人精品视频多人免费永久视频 | 精品国产免费福利片 | 精品在线播放 | 一二三区| 久久99视频精品 | 欧美色欧美亚洲高清在线观看 | 精品久久洲久久久久护士免费 | 亚洲欧美日韩高清一区二区一 | 欧美亚洲一区二区三区四 | 亚洲 欧美 精品 | 91视频网址| 欧美经典人人爽人人爽人人片 | 国产精品亚洲高清一区二区 | 人人澡人人干 | 中文字幕亚洲 综合久久 | 久久77777 | 天天干夜夜艹 | 欧美一级成人影院免费的 | 99爱在线精品视频免费观看9 | 四虎在线视频免费观看 | 久久官网 | 亚洲国产欧美在线 | 欧美成免费 | 国产美女久久久久久久久久久 | 国产精品99久久久久久人 | 久热热热| 亚洲欧美日韩高清一区二区三区 | 久久这里 | 久久久久中文 | 精品久久国产 | 可以免费观看的毛片 | 九九久久国产精品大片 | 天天爽天天干天天操 | 亚洲精品国产成人专区 |