數(shù)據(jù)結(jié)構(gòu)的抽象數(shù)據(jù)類型描述

  • 數(shù)組: 有序的元素序列悴势,將有限個元素按順序排列的集合窗宇。
  • 鏈表:有序的元素序列,但不同于數(shù)組特纤,鏈表在內(nèi)存中不是連續(xù)存放的军俊,通過指針指向下一個元素。
  • :一種操作受限制的線性表捧存,其限制是僅能在一端進行插入和刪除粪躬。新添加的元素會被保存到棧頂,稱為入棧昔穴,刪除的時候移除棧頂?shù)牡谝粋€元素镰官,稱為出棧。后進先出吗货。
  • 隊列: 一種操作受限制的線性表泳唠,其限制是僅能在前端進行刪除,后端進行插入宙搬。先進先出笨腥。
  • 二分搜索樹: 一種具有層次結(jié)構(gòu)的有限集合。每個結(jié)點都有左右結(jié)點害淤,比結(jié)點大的在結(jié)點右邊,比結(jié)點小的在結(jié)點左邊拓售。這樣的特點使得查找效率很高效窥摄。
  • 集合:由一堆無序的、 不重復(fù)的元素組成的集合础淤。
  • 映射:通過<鍵崭放,值>方式存儲數(shù)據(jù),每個元素都有<鍵鸽凶,值>,通過鍵訪問元素币砂。
  • :特殊的樹形結(jié)構(gòu)。最大值在根玻侥,每個父節(jié)點都比子節(jié)點大决摧,稱為最大堆;根是最小值凑兰,每個父節(jié)點都比子節(jié)點小掌桩,稱為最小堆。
  • 優(yōu)先隊列:一種特殊的隊列姑食,其特殊之處是根據(jù)優(yōu)先級出隊波岛,而不是先進先出。
  • 前綴樹:n叉樹結(jié)構(gòu)音半,通過字符尋找下一個節(jié)點则拷。
  • 并查集:集合與集合之間的運算贡蓖。比如兩個元素是否同一個集合;合并集合煌茬;
  • 哈希表:類似映射斥铺。不同之處是:將key通過哈希函數(shù)轉(zhuǎn)成數(shù)字索引,再去訪問數(shù)組的元素宣旱。
  • :由n(n ≥ 0)個結(jié)點 組成的集合仅父。每個結(jié)點都可以指向其他結(jié)點。

javascript 描述
java 描述
動畫描述


數(shù)組

類型名稱: 數(shù)組 浑吟。
數(shù)據(jù)對象集: n(n ≥ 0)個元素構(gòu)成的有序序列 笙纤。
操作集: 整數(shù)i表示位置,ElementType 為元素類型组力。

  1. 查找元素:int find( ElementType e)
  2. 插入元素:void insert(int i, ElementType e)
  3. 刪除元素:ElementType remove(int i)
  4. 更新元素:void set(int i, ElementType e)
  5. 訪問元素:ElementType get(int i)
  6. 返回長度:int length()
    數(shù)組


鏈表

類型名稱: 鏈表省容。
數(shù)據(jù)對象集: n(n ≥ 0)個結(jié)點構(gòu)成的有限集合,每個結(jié)點帶有指向下一個元素的指針
操作集: 整數(shù) i 表示位置燎字,ElementType 為元素類型腥椒。

  1. 添加元素:void insert(int i, ElementType e)
  2. 刪除元素:ElementType remove(int i)
  3. 查找元素:int find(ElementType e)
  4. 更新元素:void set(int i, ElementType e)
  5. 訪問元素:ElementType get(int i)
  6. 鏈表元素數(shù)量: int length()

鏈表


類型名稱: 棧。
數(shù)據(jù)對象集: n(n ≥ 0)個構(gòu)成的有序序列元素候衍。
操作集: ElementType 為元素類型笼蛛。

  1. 入棧:void push(ElementType e)
  2. 出棧:ElementType pop()
  3. 棧頂元素:ElementType peek()
  4. 元素數(shù)量:int length()


隊列

類型名稱: 隊列。
數(shù)據(jù)對象集: n(n ≥ 0)個構(gòu)成的有序序列元素蛉鹿。
操作集: ElementType 為元素類型滨砍。

  1. 進隊:enqueue(ElementType e)
  2. 出隊:ElementType dequeue()
  3. 隊首:ElementType front()
  4. 是否空:boolean isEmpty()
  5. 元素數(shù)量:int length()
    隊列






集合

類型名稱: 集合卫漫。
數(shù)據(jù)對象集: n(n ≥ 0)個元素構(gòu)成的有限集合瘩例。
操作集: ElementType 為元素類型。

  1. 添加:void add(ElementType e)
  2. 刪除:ElementType remove(ElementType e)
  3. 是否包含某個元素:boolean contains(ElementType e)
  4. 是否為空:boolean isEmpty()
  5. 長度:int length()
    集合






映射

類型名稱: 映射贫奠。
數(shù)據(jù)對象集: 每個元素都有<鍵他膳,值>,通過鍵訪問元素
操作集: KeyType為鍵類型响逢,ValueType 為值類型。

  1. 添加:void add(KeyTpe key, ValueType value)
  2. 訪問:ValueType get(KeyType key)
  3. 修改:void set(KeyTpe key, ValueType value)
  4. 刪除:ValueType remove(KeyType key)
  5. 元素數(shù)量:int length()
    映射






二分搜索樹

類型名稱: 二分搜索樹棕孙。
數(shù)據(jù)對象集: n(n ≥ 0)個結(jié)點構(gòu)成的有限集合舔亭,每個結(jié)點都有左右指針指向它的子節(jié)點
操作集: ElementType 為元素類型。

  1. 插入:void insert(ElementType e)
  2. 刪除:remove(ElementType e)
  3. 查找:ElementType find(ElementType e)
  4. 前序遍歷:void preOrder()
  5. 中序遍歷:void preOrder()
  6. 后序遍歷:void preOrder()
  7. 層序遍歷:void levelOrder()
  8. 結(jié)點數(shù)量:int size()
    二分搜索樹






前綴樹

類型名稱: 前綴樹蟀俊。
數(shù)據(jù)對象集: 每個節(jié)點都有一個指針指向下一個分歇,通過字符尋找下一個節(jié)點。
操作集: 默認為處理字母字符欧漱。

  1. 添加單詞:void add(String word)
  2. 查詢是否有某個單詞:boolean contains(String word)
  3. 是否包含某個前綴:boolean isPrefix(String prefix)
  4. 單詞數(shù)量:int size()
    前綴樹






類型名稱: 最大堆职抡。
數(shù)據(jù)對象集: n(n ≥ 0)個結(jié)點構(gòu)成的有限集合,通過索引關(guān)系訪問父節(jié)點以及左右結(jié)點
操作集: ElementType 為元素類型误甚。

  1. 添加:void add(ElementType e)
  2. 刪除堆頂元素:ElementType remove(ElementType e)
  3. 獲取堆頂元素:ElementType get()
  4. 元素數(shù)量:int lenght()






優(yōu)先隊列

類型名稱: 優(yōu)先隊列缚甩。
數(shù)據(jù)對象集: n(n ≥ 0)個構(gòu)成的有序序列元素
操作集: ElementType 為元素類型谱净。

  1. 進隊:enqueue(ElementType e)
  2. 出隊:ElementType dequeue()
  3. 隊首:ElementType front()
  4. 是否空:boolean isEmpty()
  5. 元素數(shù)量:int length()
    在這里插入圖片描述






并查集

類型名稱: 并查集。
數(shù)據(jù)對象集: 元素 或 集合擅威。
操作集: ElementType 為元素類型 壕探。

  1. 是否同一個集合:boolean isConnected(ElementType p, ElementType q)
  2. 合并集合:void unionElement(ElementType p, ElementType q)
    并查集






哈希表

類型名稱: 哈希表。
數(shù)據(jù)對象集: 有<鍵郊丛,值>的元素李请。
操作集: KeyType為鍵類型,ValueType 為值類型厉熟。

  1. 添加:void add(KeyTpe key, ValueType value)
  2. 訪問:ValueType get(KeyType key)
  3. 修改:void set(KeyTpe key, ValueType value)
  4. 刪除:ValueType remove(KeyType key)
  5. 哈希函數(shù):int hashCode(key)
  6. 元素數(shù)量:int size()
    哈希表






<h2 id="圖">圖</h2>

類型名稱: 圖导盅。
數(shù)據(jù)對象集: 結(jié)點。每個節(jié)點都可以指向其他結(jié)點揍瑟。
操作集: ElementType 為元素類型 白翻。

  1. 是否包含某個點:boolean contains(ElementType v)
  2. v1點到v2點是否連通:boolean isConnected(ElementType v1, ElementEtype v1)
  3. 添加點:void addVertex(ElementType v)
  4. 添加線:void addEdge(ElmentType v1, ElmentType v2)
  5. 刪除點:ElementType removeVertex(v)
  6. 刪除線:void removeEdge(ElementType v1, ElementType v2)
  7. 獲取點的線:Array getEdge(v)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市绢片,隨后出現(xiàn)的幾起案子滤馍,更是在濱河造成了極大的恐慌,老刑警劉巖底循,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巢株,死亡現(xiàn)場離奇詭異,居然都是意外死亡熙涤,警方通過查閱死者的電腦和手機阁苞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來灭袁,“玉大人猬错,你說我怎么就攤上這事窗看∪灼纾” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵显沈,是天一觀的道長软瞎。 經(jīng)常有香客問我,道長拉讯,這世上最難降的妖魔是什么涤浇? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮魔慷,結(jié)果婚禮上只锭,老公的妹妹穿的比我還像新娘。我一直安慰自己院尔,他們只是感情好蜻展,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布喉誊。 她就那樣靜靜地躺著,像睡著了一般纵顾。 火紅的嫁衣襯著肌膚如雪伍茄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天施逾,我揣著相機與錄音敷矫,去河邊找鬼。 笑死汉额,一個胖子當著我的面吹牛曹仗,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播闷愤,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼整葡,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了讥脐?” 一聲冷哼從身側(cè)響起遭居,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎旬渠,沒想到半個月后俱萍,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡告丢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年枪蘑,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片岖免。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡岳颇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出颅湘,到底是詐尸還是另有隱情话侧,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布闯参,位于F島的核電站瞻鹏,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏鹿寨。R本人自食惡果不足惜新博,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望脚草。 院中可真熱鬧赫悄,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至同诫,卻和暖如春粤策,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背误窖。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工叮盘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人霹俺。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓柔吼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親丙唧。 傳聞我的和親對象是個殘疾皇子愈魏,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355