數(shù)據(jù)結(jié)構(gòu) (不完整待更新)

數(shù)據(jù)結(jié)構(gòu)與算法

  1. 定義:數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)存儲(chǔ)唱星、組織數(shù)據(jù)的方式愧旦。數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合铛只。

  2. 傳統(tǒng)上埠胖,把數(shù)據(jù)結(jié)構(gòu)分為 邏輯結(jié)構(gòu)物理結(jié)構(gòu)

  3. 邏輯結(jié)構(gòu):指反映數(shù)據(jù)元素之間的邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu)淳玩,其中的邏輯關(guān)系是指數(shù)據(jù)元素之間的前后間關(guān)系直撤,而與他們?cè)谟?jì)算機(jī)中的存儲(chǔ)位置無(wú)關(guān)

  4. 物理結(jié)構(gòu):指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間的存放形式蜕着。

  5. 數(shù)據(jù)結(jié)構(gòu) = 邏輯結(jié)構(gòu) + 存儲(chǔ)結(jié)構(gòu)

    數(shù)據(jù)結(jié)構(gòu) = 邏輯結(jié)構(gòu) + 存儲(chǔ)結(jié)構(gòu) + (在存儲(chǔ)結(jié)構(gòu)上的)運(yùn)算/操作

  6. 數(shù)據(jù)的運(yùn)算:檢索谋竖、排序、插入、刪除蓖乘、修改等锤悄。

邏輯結(jié)構(gòu)

  1. 分類:線性結(jié)構(gòu)非線性結(jié)構(gòu)
  2. 線性結(jié)構(gòu):有且只有一個(gè)開始結(jié)點(diǎn)和一個(gè)終端結(jié)點(diǎn)驱敲,并且所有結(jié)點(diǎn)都最多只有一個(gè)直接前驅(qū)和一個(gè)直接后繼铁蹈。
  3. 分類:線性結(jié)構(gòu)非線性結(jié)構(gòu)
  4. 線性結(jié)構(gòu):線性表 众眨、 握牧、隊(duì)列串及數(shù)組 娩梨。
  5. 非線性結(jié)構(gòu):樹形結(jié)構(gòu) 沿腰、圖形結(jié)構(gòu)

線性表(Linear List)

  • 一個(gè)線性表是n個(gè)具有相同特性的數(shù)據(jù)元素的有限序列狈定。
    1. 邏輯結(jié)構(gòu)為線性表的結(jié)構(gòu)颂龙,存儲(chǔ)結(jié)構(gòu)的順序表,鏈表都可以實(shí)現(xiàn)纽什。

鏈表(Linked List)

  1. 單向鏈表
  2. 雙向鏈表
  3. 循環(huán)鏈表

棧和隊(duì)列(Stack & Queue)

棧 (Stack)

  1. 特點(diǎn):先進(jìn)后出

隊(duì)列(Queue)

  1. 特點(diǎn):先進(jìn)先出

樹(Tree)

  1. 結(jié)點(diǎn)的度:節(jié)點(diǎn)擁有的子樹的數(shù)目稱為 措嵌。

  2. 度為0的結(jié)點(diǎn)稱為 葉子結(jié)點(diǎn)終端結(jié)點(diǎn)

  3. 度不為0的結(jié)點(diǎn)稱為 非終端結(jié)點(diǎn)分支結(jié)點(diǎn) 芦缰。除跟之外的分支結(jié)點(diǎn)也稱為 內(nèi)部結(jié)點(diǎn) 企巢。

  4. 數(shù)內(nèi)各結(jié)點(diǎn)的度的最大值稱為 樹的度

  5. 結(jié)點(diǎn)的 層次 從根開始定義让蕾,層次數(shù)為1的結(jié)點(diǎn)是 根節(jié)點(diǎn) 浪规,其子樹的根的層次數(shù)為 2 。

  6. 樹中結(jié)點(diǎn)的最大層次稱為樹的 深度高度 探孝。

  7. 父親:一個(gè)結(jié)點(diǎn)的直接前驅(qū)結(jié)點(diǎn)笋婿。

    兒子:一個(gè)結(jié)點(diǎn)的直接后繼結(jié)點(diǎn)。

    兄弟:同一個(gè)父親結(jié)點(diǎn)的其他結(jié)點(diǎn)顿颅。

  8. m叉樹:樹中所有結(jié)點(diǎn)最大度數(shù)為 m 的有序樹稱為 m叉數(shù)

二叉樹(Binary Tree)

  1. 定義:每個(gè)結(jié)點(diǎn)的度均不超過2有序樹缸濒,稱為二叉樹(binary tree)。

  2. 分類:滿二叉樹 粱腻、 完全二叉樹绍填。

    滿二叉樹:

    ? a. 高度為k,并且有 2^(k+1) - 1栖疑。
    b.每一層結(jié)點(diǎn)個(gè)數(shù),都是上面全部層結(jié)點(diǎn)數(shù)+1滔驶。

    完全二叉樹:

    ? a.若在一顆滿二叉樹中遇革,在最下層從最右側(cè)起去掉相鄰的若干葉子結(jié)點(diǎn),得到的二叉樹即為完全二叉數(shù)。

    ? b.滿二叉樹必為完全二叉樹萝快,而完全二叉樹不一定是滿二叉樹锻霎。

  3. 二叉樹的存儲(chǔ)結(jié)構(gòu): 1. 順序存儲(chǔ)結(jié)構(gòu) 和 鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。

  4. 二叉樹的遍歷:按照某種次序訪問樹中的所有結(jié)點(diǎn)揪漩,且每個(gè)結(jié)點(diǎn)恰好訪問一次旋恼。

    • 先序遍歷: 根 左子樹 右子樹
    • 中序遍歷:左子樹 根 右子樹
    • 后序遍歷:左子樹 右子樹 根
  5. 二叉查找樹(Binary Search Tree)/二叉搜索樹/二叉排序樹(Binary Sort Tree)

    a.特點(diǎn):左子樹(left subtree)上所有結(jié)點(diǎn)的值 均小于它的根結(jié)點(diǎn)(root)的值,右子樹(right subtree)均大于它的根結(jié)點(diǎn)(root)的值奄容。

    b.對(duì)二叉查找樹進(jìn)行中序遍歷冰更,就可以得到有序集合。

  6. 平衡二叉樹(Self-balancing binary search tree):左右兩個(gè)子樹的高度差(平衡因子)的絕對(duì)值 不超過1 昂勒。

  7. 紅黑樹(Red-Black Tree):一種特殊的 平衡二叉樹 蜀细。

圖(Graph)

物理結(jié)構(gòu)

  1. 物理結(jié)構(gòu):物理結(jié)構(gòu)又叫存儲(chǔ)結(jié)構(gòu),指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間的存放形式戈盈。
  2. 分類:**順序存儲(chǔ) ** 鏈?zhǔn)酱鎯?chǔ) 索引存儲(chǔ) 散列存儲(chǔ) 奠衔。
  3. 順序存儲(chǔ):把邏輯上相鄰的結(jié)點(diǎn)存儲(chǔ)在物理位置上相鄰的存儲(chǔ)單元中,結(jié)點(diǎn)之間的邏輯關(guān)系由存儲(chǔ)單元的鄰接關(guān)系來(lái)體現(xiàn)塘娶。
  4. 鏈?zhǔn)酱鎯?chǔ):計(jì)算機(jī)中用一組任意的存儲(chǔ)單元存儲(chǔ)線性表的數(shù)據(jù)元素(這組存儲(chǔ)單元可以是連續(xù)的,也可以是不連續(xù)的)归斤。
  5. 索引存儲(chǔ):所有的存儲(chǔ)結(jié)點(diǎn)存放在一個(gè)區(qū)域。另設(shè)置一個(gè)索引區(qū)域存儲(chǔ)結(jié)點(diǎn)之間的關(guān)系刁岸。
  6. 散列存儲(chǔ):又稱hash存儲(chǔ)脏里,是一種力圖將數(shù)據(jù)元素的存儲(chǔ)位置與關(guān)鍵碼之間建立確定對(duì)應(yīng)關(guān)系的查找技術(shù)。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末难捌,一起剝皮案震驚了整個(gè)濱河市膝宁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌根吁,老刑警劉巖员淫,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異击敌,居然都是意外死亡介返,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門沃斤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)圣蝎,“玉大人,你說我怎么就攤上這事衡瓶∨枪” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵哮针,是天一觀的道長(zhǎng)关面。 經(jīng)常有香客問我坦袍,道長(zhǎng),這世上最難降的妖魔是什么等太? 我笑而不...
    開封第一講書人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任捂齐,我火速辦了婚禮,結(jié)果婚禮上缩抡,老公的妹妹穿的比我還像新娘奠宜。我一直安慰自己,他們只是感情好瞻想,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開白布压真。 她就那樣靜靜地躺著,像睡著了一般内边。 火紅的嫁衣襯著肌膚如雪榴都。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,604評(píng)論 1 305
  • 那天漠其,我揣著相機(jī)與錄音嘴高,去河邊找鬼。 笑死和屎,一個(gè)胖子當(dāng)著我的面吹牛拴驮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播柴信,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼套啤,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了随常?” 一聲冷哼從身側(cè)響起潜沦,我...
    開封第一講書人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎绪氛,沒想到半個(gè)月后唆鸡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡枣察,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年争占,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片序目。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡臂痕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出猿涨,到底是詐尸還是另有隱情握童,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布叛赚,位于F島的核電站澡绩,受9級(jí)特大地震影響片效,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜英古,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望昙读。 院中可真熱鬧召调,春花似錦、人聲如沸蛮浑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)沮稚。三九已至艺沼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蕴掏,已是汗流浹背障般。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留盛杰,地道東北人挽荡。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓即供,卻偏偏與公主長(zhǎng)得像定拟,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子逗嫡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容