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