java数据结构有哪些_java有哪些数据结构?
① 數(shù)組(Array)
在程序設(shè)計(jì)中,為了處理方便, 把具有相同類型的若干變量按有序的形式組織起來(lái)。這些按序排列的同類數(shù)
據(jù)元素的集合稱為數(shù)組。在C語(yǔ)言中, 數(shù)組屬于構(gòu)造數(shù)據(jù)類型。一個(gè)數(shù)組可以分解為多個(gè)數(shù)組元素,這些數(shù)組
元素可以是基本數(shù)據(jù)類型或是構(gòu)造類型。因此按數(shù)組元素的類型不同,數(shù)組又可分為數(shù)值數(shù)組、字符數(shù)組、指
針數(shù)組、結(jié)構(gòu)數(shù)組等各種類別。
② 棧 (Stack)
棧是只能在某一端插入和刪除的特殊線性表。它按照先進(jìn)后出的原則存儲(chǔ)數(shù)據(jù),先進(jìn)入的數(shù)據(jù)被壓入棧底,最后
的數(shù)據(jù)在棧頂,需要讀數(shù)據(jù)的時(shí)候從棧頂開始彈出數(shù)據(jù)(最后一個(gè)數(shù)據(jù)被第一個(gè)讀出來(lái))。
③ 隊(duì)列 (Queue)
一種特殊的線性表,它只允許在表的前端(front)進(jìn)行刪除操作,而在表的后端(rear)進(jìn)行插入操作。進(jìn)行
插入操作的端稱為隊(duì)尾,進(jìn)行刪除操作的端稱為隊(duì)頭。隊(duì)列中沒有元素時(shí),稱為空隊(duì)列。
④ 鏈表 (Linked List)
一種物理存儲(chǔ)單元上非連續(xù)、非順序的存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過(guò)鏈表中的指針鏈接次序?qū)崿F(xiàn)的。
鏈表由一系列結(jié)點(diǎn)(鏈表中每一個(gè)元素稱為結(jié)點(diǎn))組成,結(jié)點(diǎn)可以在運(yùn)行時(shí)動(dòng)態(tài)生成。每個(gè)結(jié)點(diǎn)包括兩個(gè)部分:
一個(gè)是存儲(chǔ)數(shù)據(jù)元素的數(shù)據(jù)域,另一個(gè)是存儲(chǔ)下一個(gè)結(jié)點(diǎn)地址的指針域。
⑤ 樹 (Tree)
樹是包含n(n>0)個(gè)結(jié)點(diǎn)的有窮集合K,且在K中定義了一個(gè)關(guān)系N,N滿足 以下條件:(1)有且僅有一個(gè)結(jié)點(diǎn) k0,他對(duì)于關(guān)系N來(lái)說(shuō)沒有前驅(qū),稱K0為樹的根結(jié)點(diǎn)。簡(jiǎn)稱為根(root)
(2)除K0外,k中的每個(gè)結(jié)點(diǎn),對(duì)于關(guān)系N來(lái)說(shuō)有且僅有一個(gè)前驅(qū)。
(3)K中各結(jié)點(diǎn),對(duì)關(guān)系N來(lái)說(shuō)可以有m個(gè)后繼(m>=0)。
⑥ 堆 (Heap)
在計(jì)算機(jī)科學(xué)中,堆是一種特殊的樹形數(shù)據(jù)結(jié)構(gòu),每個(gè)結(jié)點(diǎn)都有一個(gè)值。通常我們所說(shuō)的堆的數(shù)據(jù)結(jié)構(gòu),是指
二叉堆。堆的特點(diǎn)是根結(jié)點(diǎn)的值最小(或最大),且根結(jié)點(diǎn)的兩個(gè)子樹也是一個(gè)堆。
⑦ 圖 (Graph)
圖是由結(jié)點(diǎn)的有窮集合V和邊的集合E組成。其中,為了與樹形結(jié)構(gòu)加以區(qū)別,在圖結(jié)構(gòu)中常常將結(jié)點(diǎn)稱為頂點(diǎn),
邊是頂點(diǎn)的有序偶對(duì),若兩個(gè)頂點(diǎn)之間存在一條邊,就表示這兩個(gè)頂點(diǎn)具有相鄰關(guān)系。
⑧ 散列表 (Hash)
若結(jié)構(gòu)中存在關(guān)鍵字和K相等的記錄,則必定在f(K)的存儲(chǔ)位置上。由此,不需比較便可直接取得所查記錄。稱
這個(gè)對(duì)應(yīng)關(guān)系f為散列函數(shù)(Hash function),按這個(gè)思想建立的表為散列表。
總結(jié)
以上是生活随笔為你收集整理的java数据结构有哪些_java有哪些数据结构?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 征信账户数啥意思
- 下一篇: java实现一个gui面板_JAVA G