導航:首頁 > 編程語言 > 數據結構圖java

數據結構圖java

發布時間:2024-10-12 19:39:07

java數據結構

首先明確,帶權路徑長度WPL最小的二叉樹稱作最優二叉樹或哈夫曼樹


那麼比如說有4個節點,分別帶權7,5,2,4如下ab兩圖

WPLa=7*2+5*2+2*2+4*2=36

WPLb=7*1+5*2+2*3+4*3=35

WPL=30*2+5*5*4+8*4*15*3+15*2+27*2=

不算了 口算不行... 看上式也知道你出現的概率越大,相當於基地越大,就給你乘個小的代價,必然是最優的。

⑵ java中有哪些數據結構

數據結構:
①數組 (Array)
在程序設計中,為了處理方便, 把具有相同類型的若干變數按有序的形式組織起來。這些按序排列的同類數
據元素的集合稱為數組。在C語言中, 數組屬於構造數據類型。一個數組可以分解為多個數組元素,這些數組
元素可以是基本數據類型或是構造類型。因此按數組元素的類型不同,數組又可分為數值數組、字元數組、指
針數組、結構數組等各種類別。
②棧 (Stack)
棧是只能在某一端插入和刪除的特殊線性表。它按照先進後出的原則存儲數據,先進入的數據被壓入棧底,最後
的數據在棧頂,需要讀數據的時候從棧頂開始彈出數據(最後一個數據被第一個讀出來)。
③隊列 (Queue)
一種特殊的線性表,它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作。進行
插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。隊列中沒有元素時,稱為空隊列。
④鏈表 (Linked List)
一種物理存儲單元上非連續、非順序的存儲結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。
鏈表由一系列結點(鏈表中每一個元素稱為結點)組成,結點可以在運行時動態生成。每個結點包括兩個部分:
一個是存儲數據元素的數據域,另一個是存儲下一個結點地址的指針域。
⑤樹 (Tree)
樹是包含n(n>0)個結點的有窮集合K,且在K中定義了一個關系N,N滿足 以下條件:
(1)有且僅有一個結點 k0,他對於關系N來說沒有前驅,稱K0為樹的根結點。簡稱為根(root)
(2)除K0外,k中的每個結點,對於關系N來說有且僅有一個前驅。
(3)K中各結點,對關系N來說可以有m個後繼(m>=0)。
⑥堆 (Heap)
在計算機科學中,堆是一種特殊的樹形數據結構,每個結點都有一個值。通常我們所說的堆的數據結構,是指
二叉堆。堆的特點是根結點的值最小(或最大),且根結點的兩個子樹也是一個堆。
⑦圖 (Graph)
圖是由結點的有窮集合V和邊的集合E組成。其中,為了與樹形結構加以區別,在圖結構中常常將結點稱為頂點,
邊是頂點的有序偶對,若兩個頂點之間存在一條邊,就表示這兩個頂點具有相鄰關系。
⑧散列表 (Hash)
若結構中存在關鍵字和K相等的記錄,則必定在f(K)的存儲位置上。由此,不需比較便可直接取得所查記錄。稱
這個對應關系f為散列函數(Hash function),按這個思想建立的表為散列表。
差不多我就知道這些了~

⑶ JAVA數據結構有哪幾種

數組、棧 、隊列、鏈表、樹、堆 、圖、散列表 。

1:數組是計算機編程語言上,對於「Array」的中文稱呼,是用於儲存多個相同類型數據的集合。

2:棧是限定僅在表尾進行插入和刪除操作的線性表,棧者,存儲貨物或供旅客住宿的地方,可引申為倉庫、中轉站,引入到計算機領域里,就是指數據暫時存儲的地方,所以才有進棧、出棧的說法。

3:一種特殊的線性表,它只允許在表的前端進行刪除操作,而在表的後端進行插入操作。

4:鏈表,一種物理存儲單元上非連續、非順序的存儲結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。

5:哈希表,是根據關鍵碼值而直接進行訪問的數據結構。也就是說,它通過把關鍵碼值映射到表中一個位置來訪問記錄,以加快查找的速度。

⑷ java問題,鏈表跟順序表到底有什麼不同順序表我知道,但是為什麼說鏈表讀取數據時要從頭開始,

接樓上:准確的來說,你的問題是一個數據結構上的問題.

首先你要區分一下物理上的存儲結構 與 邏輯上的數據結構

物理上的存儲結構

邏輯上的數據結構

任何邏輯上的數據結構要在計算機上表示時,都必須根據自己的需求選擇一種物理上的存儲結構,然後根據邏輯數據結構的特性進行存儲等等操作.

對於物理上的存儲結構而言

這種特性是由於其物理實現決定的,目前暫時看沒有辦法改變.

回過頭來看你的問題中兩個關鍵的概念定義:

所以:

順序表可以隨即存取任一元素.而鏈表在絕大部分情況下都需要遍歷查找.

⑸ 關於JAVA和數據結構的問題

編程語言大同小異,基本的邏輯操作都是一樣的。比如與或,if,while這些。
但是java是面向對象,c是面向程序。我先學的c,後學的java,怎麼都轉不過來。現在習慣用java了,又不會用c了。
其實吧,沒必要學c。如果你java學的好,那麼一般的函數調用,參數傳遞和邏輯語句都應該會了吧。這樣接觸一門新的語言就不是啥難事了。編程重要的是思想,
個人覺得初學編程的時候最難的就是邏輯操作。還有參數和函數的調用。這些都會了之後,不用專門學某種編程,都觸類旁通了(匯編除外)。
我學了c之後自學java,現在用的最好的是java,然後可以重構別人的asp,c#,不會寫但是都可以看懂了,看多了就會寫了

⑹ JAVA數據結構哪些

主要是3種介面:List Set Map
List:ArrayList,LinkedList:順序表ArrayList,鏈表LinkedList,堆棧和隊列可以使用LinkedList模擬
Set:HashSet沒有重復記錄的集合
Map:HashMap就是哈希表
二叉樹可以利用遞歸的思想來模擬自行設計,從JDK5開始還提供了一個新的隊列介面
圖!!!沒遇到過這樣的情況,恐怕還是要自己模擬

閱讀全文

與數據結構圖java相關的資料

熱點內容
惠州解壓地方 瀏覽:965
java按鈕關閉窗口 瀏覽:48
單片機開發是什麼 瀏覽:502
pdf機位 瀏覽:696
如何把數據編譯到程序中 瀏覽:609
php中文分詞api 瀏覽:826
電腦程序員寫代碼有潛質嗎 瀏覽:942
android添加字體樣式 瀏覽:707
程序員只一輪面試好不好 瀏覽:151
每日優鮮安卓怎麼退出登錄 瀏覽:328
編譯器怎麼區分字元 瀏覽:404
rz命令和 瀏覽:95
pdf自動生成書簽 瀏覽:415
程序員是一個什麼樣的 瀏覽:862
穩健的無伺服器是什麼 瀏覽:300
數據結構圖java 瀏覽:714
事務處理pdf 瀏覽:961
win10什麼壓縮軟體好 瀏覽:1003
dos目錄是樹形結構命令 瀏覽:604
編程入門過濾方法 瀏覽:950