天天看點

初識二叉樹,領悟樹的概念 | 帶你學《Java語言進階特性》之三十八

上一篇:Comparator幫你補救比較缺陷 | 帶你學《Java語言進階特性》之三十七

在之前的學習中我們接觸過連結清單資料結構的相關内容,其查詢操作的時間複雜度為O(n),這對大量資料來說顯然是很損耗性能的。本節将為讀者介紹一種新的資料結構:二叉樹。

【本節目标】

通過閱讀本節内容,你将初步接觸樹的結構,了解其結構特性和資料排布方式,并能夠實作簡單的二叉樹,了解其執行查詢時的基本邏輯,認識其常用的周遊方法。

二叉樹結構

在進行連結清單結構開發的過程之中會發現所有的資料按照首尾相連的狀态進行儲存,那麼當要進行某一個資料查詢的時候(判斷該資料是否存在),這種情況下它所面對的時間複雜度是“O(n)”,如果說它的資料量小(不超過30個)情況下,那麼性能上是不會有太大差别的,而一旦儲存的資料量很大,這個時候時間複雜度就會嚴重損耗程式的運作性能,那麼現在對于資料的存儲結構就必須發生改變,應該可以盡可能的減少檢索次數為出發點進行設計。對于現在的資料結構而言,最好的性能就是“O(logn)”,是以要想實作它,就可以利用二叉樹的結構來完成。

如果要實作一棵樹結構的定義,那麼需要去考慮資料的存儲形式,在二叉樹的實作之中,其基本的實作原理如下:取第一個資料為儲存的根節點,小于等于根節點的資料放在節點的左子樹,而大于節點的資料要放在該節點的右子樹。

初識二叉樹,領悟樹的概念 | 帶你學《Java語言進階特性》之三十八

二叉樹

如果要進行資料檢索的話,此時就需要進行每個節點的判斷,但是它的判斷是區分左右的,是以不會是整個結構都進行判斷處理,那麼它的時間複雜度就是“O(logn)”。

而對于二叉樹而言,在進行資料擷取的時候也有三種形式:前序周遊(根-左-右)、中序周遊(左-根-右)、後序周遊(左-右-根),那麼現在隻是以中序周遊為主,則以上的資料進行中序周遊的時候最終的結果:10、20、25、30、38、50、80、100;

想學習更多的Java的課程嗎?從小白到大神,從入門到精通,更多精彩不容錯過!免費為您提供更多的學習資源。

本内容視訊來源于

阿裡雲大學 下一篇:手把手教你實作二叉樹資料添加 | 帶你學《Java語言進階特性》之三十九 更多Java面向對象程式設計文章檢視此處