欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

常見的8種JAVA數據結構

? ?1、 數組(Arrary)

? ? ? ? ? ? ? ? 數組是一種線性結構的數據,連續的存儲空間和相同的類型數據。查詢速度快,但是數組的容量固定,無法擴容,只能存儲同類型的數據,對于添加和刪除元素比較慢

? ? ? ? 2、棧(Stark)

? ? ? ? ? ? ? ? 棧是一種先進后出的一種結構,好比水桶。例如虛擬機棧,方法棧等

? ? ? ? 3、鏈表(Linked List)

? ? ? ? ? ? ? ? 鏈表是一種線性的鏈式結構,鏈表的內存不是連續的,前一個節點存儲的地址不一定就是一個元素,可能是一個引用,通過這個引用可以拿到對應的對象。鏈表是通過一個節點指向另一個節點的地址將元素串起來。

? ? ? ? ? ? ? ? 單向鏈表:最簡單的鏈表格式。鏈表的最小單元為節點,每一個節點包含了數據和指向下一個節點的指針。

? ? ? ? ? ? ? ? 雙向鏈表:兩個方向的鏈表。鏈表的每個節點包含了數據以及前一個節點地址的指針和后一個節點的地址指針。這種數據結構的好處是通過當前節點可以通過時間復雜度o(1)很快定位到前置節點和后置節點,但是通過前置指針和后置指針的配置增加了內存的消耗。

? ? ? ? ? ? ? ? 循環鏈表:跟雙向列表差不多,但是唯一的區別就是尾節點的后置指針指向頭節點,頭節點也有指針指向了尾節點。

? ? ? ? 3、哈希(Hash)

? ? ? ? ? ? ? ? 哈希也叫做散列。通過key-vlue的方式存儲,在很大程度上提高了數據的查詢,增加和刪除。hash結合數組和鏈表的特性(數組查詢快,鏈表增刪快)。

? ? ? ? ? ? ? ? Java最經典的HashMap的底層實現是數組+鏈表+紅黑樹

? ? ? ? ? ? ? ? hash函數在hash表中起到至關重要作用,數據通過hash函數生成一個固定的hash值,通過hash值可以很快的定位到元素。但是hash值不是唯一的,就將hash值相同的放入鏈表中,如果鏈表的長度超過8,或者大小超過64,就將鏈表轉化為紅黑樹。

? ? ? ? 4、隊列(Queue)

? ? ? ? ? ? ? ? 隊列是特殊的線性結構,一種先進先出的數據存儲結構,數據的刪除操作只能在頭部操作,插入在尾部操作。

? ? ? ? 5、樹(Tree)

? ? ? ? ? ? ? ? 樹是一種線性結構,有節點組成的集合。

? ? ? ? ? ? ? ? 二叉樹:每一個節點最多有兩個子樹

? ? ? ? ? ? ? ? 完全二叉樹:除了最外層節點,其他的節點都達到最大的層數

? ? ? ? ? ? ? ? 滿二叉樹:一個樹的節點要么是葉子節點,要么就是有兩個節點

? ? ? ? ? ? ? ? 平衡二叉樹:任何節點的子樹高度差不超過1;

? ? ? ? ? ? ? ? 二叉查找樹:任意節點的左子樹都不能為空,并且左子樹所有節點的值都小于根節點;任意節點的右子樹不能為空,并且右子樹所有節點的值都大于根節點;任意節點的左右子樹都是一個二叉查找樹。

? ? ? ? ? ? ? ? B樹:一種堆讀寫優化的自平衡二叉樹,在數據庫索引的常用索引數據的結構。

? ? ? ? ? ? ? ? B+樹:所有非葉子節點都是索引部分,節點中僅包含根節點的最大或者最小的關鍵字;所有葉子節點包含了所有關鍵字的信息以及含有這些關鍵字記錄的指針,而且葉子節點數據根據關鍵節點的大小從小到大排列;m個子樹的中間節點包含有m個元素,每個元素不包含數據,只包含索引。

? ? ? ? ? ? ? ? 紅黑樹

? ? ? ? ? ? ? ? 紅黑樹是一種平衡二叉樹,通過顏色約束樹的平衡。每一個元素要么紅色,要么黑色;根節點一定是黑色;每個葉子節點都是黑色的;如果一個節點為紅色,那么他的所有子節點都是黑色,因為每一條路徑上都不能出現相鄰兩個節點是同一顏色;每一個葉子節點的所有路徑存在的黑色節點都相同。

? ? ? ? 6、堆(Heap)

? ? ? ? ? ? ? ? 堆是一種特殊的樹形結構,父節點的值大于等于子節點的值或者小于子節點的值。對于max heap根節點是所有節點的最大值 或者min heap根節點值是所有節點最小的值。

? ? ? ? 7、圖(Graph)

? ? ? ? ? ? ? ? 一個圖就是一些頂點的集合,這些頂點通過一系列邊結對(連接)。頂點用圓圈表示,邊就是這些圓圈之間的連線。頂點之間通過邊連接。

? ? ? ? ? ? ? ? 節點之間的關系是任意的,圖中任意兩個數據元素之間都有可能相關。

文章鏈接: http://www.qzkangyuan.com/22189.html

文章標題:常見的8種JAVA數據結構

文章版權:夢飛科技所發布的內容,部分為原創文章,轉載請注明來源,網絡轉載文章如有侵權請聯系我們!

聲明:本站所有文章,如無特殊說明或標注,均為本站原創發布。任何個人或組織,在未征得本站同意時,禁止復制、盜用、采集、發布本站內容到任何網站、書籍等各類媒體平臺。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。

給TA打賞
共{{data.count}}人
人已打賞
建站教程

常見的8種JAVA數據結構

2023-7-19 17:08:09

建站教程

線索化二叉樹

2023-7-19 17:10:36

0 條回復 A文章作者 M管理員
    暫無討論,說說你的看法吧
?
個人中心
購物車
優惠劵
今日簽到
有新私信 私信列表
搜索
主站蜘蛛池模板: 海宁市| 弋阳县| 哈尔滨市| 松原市| 永德县| 郴州市| 沙洋县| 华安县| 永济市| 高尔夫| 隆昌县| 浠水县| 北辰区| 枝江市| 铅山县| 望都县| 洛扎县| 满洲里市| 德令哈市| 沈丘县| 特克斯县| 交城县| 陆河县| 望谟县| 固原市| 北安市| 姜堰市| 汉寿县| 武隆县| 盐山县| 本溪| 祁连县| 四子王旗| 屯留县| 全椒县| 五原县| 丰顺县| 东乌珠穆沁旗| 开平市| 阿荣旗| 望江县|