Java數據結構之樹與二叉樹_第1頁
Java數據結構之樹與二叉樹_第2頁
Java數據結構之樹與二叉樹_第3頁
Java數據結構之樹與二叉樹_第4頁
Java數據結構之樹與二叉樹_第5頁
已閱讀5頁,還剩13頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、學習目標樹二叉樹的定義及性質二叉樹的遍歷樹與二叉樹的轉換樹樹的定義義樹的術語語樹的定義義樹(tree)是由n(n0)個結點點組成的的有限集集合。n=0的樹稱為為空樹;對n0的樹T,有:有一個特特殊的結結點稱為為根結點點(root),它只只有直接接后繼結結點,沒沒有直接接前驅結結點。當n1時,除根根結點之之外的其其他結點點分為m(m0)個互不不相交的的集合T1,T2, , Tm,其中每每個集合合Tm(1im)本身又又是一棵棵結構與與樹類同同的子樹樹(subtree)。每棵棵子樹的的根結點點有且僅僅有一個個直接前前驅結點點,但可可以有零零或多個個直接后后繼結點點。樹的術語語結點孩子結點點與雙親親結

2、點兄弟結點點祖先結點點與后代代結點結點的度度葉子結點點與分支支結點樹的度二叉樹的的定義及及性質二叉樹的的定義二叉樹的的性質二叉樹的的存儲結結構聲明二叉叉樹類二叉樹的的定義二叉樹的的遞歸定定義二叉樹(binarytree)是n(n0)個結點點組成的的有限集集合。n=0時稱為空空二叉樹樹;n0的二叉樹樹由一個個根結點點和兩棵棵互不相相交的、分別稱稱為左子子樹和右右子樹的的子二叉叉樹構成成。二叉樹的的基本形形態3個結點樹樹與二叉叉樹的基基本形態態二叉樹的的性質性質1若根結點點的層次次為1,則二叉叉樹第i層的結點點數目最最多為2i-1(i1)。性質2在深度為為k的二叉樹樹中,至至多有2k-1個結點(k

3、0)。性質3二叉樹中中,若葉葉子結點點數為n0,2度結點數數為n2,則有n0=n2+1。滿二叉樹樹與完全全二叉樹樹性質4如果一棵棵完全二二叉樹有有n個結點,則其深深度。性質5若將一棵棵具有n個結點的的完全二二叉樹按按順序表表示,對對于編號號為i(1in)的結點點,有如如下特點點:若i=1,則i為根結點點,無雙雙親;若若i1,則i的雙親是是編號為為i /2的結點。若2in,則i的左孩子子是編號號為2i的結點;若2in,則i無左孩子子。若2i+1n,則i的右孩子子是編號號為2i+1的結點;若2i+1n,則i無右孩子子。二叉樹的的存儲結結構二叉樹的的順序存存儲結構構二叉樹的的鏈式存存儲結構構聲明二叉

4、叉樹類二叉樹的的結點類類publicclassTreeNodepublicObjectdata;/數據元素素publicTreeNodeleft,right;/指向左、右孩子子結點的的鏈publicTreeNode() this(?);publicTreeNode(Objecto)/構造有值值結點data= o;left=null;right=null;二叉樹類類節點publicvoidsetData(Objectdata)this.data= data;publicObjectgetData() returndata;publicvoidsetLeft(TreeNode left) this

5、.left= left;publicTreeNodegetLeft()returnleft;二叉樹類類節點publicTreeNodesetRight(TreeNoderight)returnthis.right= right;publicTreeNodegetRight() returnright;/測試一個個節點是是否是葉葉子節點點publicbooleanisLeaf()returnleft=null&right=null;/如何何從最左左節點或或最右節節點獲取取數據?二叉樹類類節點/從最最左節點點或最右右節點獲獲取數據據publicObjectgetLeftmostData()if(left=null) returndata;elsereturnleft.getLeftmostData();/如何何刪除最最左節點點或最右右節點?提示:二叉樹類類節點/刪除除最左或或最右節節點publicTreeNoderemoveLeftmost()if(left=null)/最左節點點是根節節點,因因為它沒沒有左孩孩子returnright;else/一個遞歸歸調用刪刪除左子子樹的最最左節點點left=left.removeLeftmost();returnthis;練習提供復制制一棵二二叉樹的的方法p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論