數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)介
什么是數(shù)據(jù)結(jié)構(gòu)
- 計(jì)算機(jī)存儲(chǔ)以及組織數(shù)據(jù)的方式
- 也可以理解為,有一堆數(shù)據(jù),他們之間有些特殊的關(guān)系
常見(jiàn)的數(shù)據(jù)結(jié)構(gòu)
- 線性表(數(shù)組、鏈表、棧、隊(duì)列)
- 樹(shù)
- 圖
邏輯結(jié)構(gòu)
數(shù)據(jù)從邏輯結(jié)構(gòu)上看,分為下面幾種結(jié)構(gòu)
-
集合結(jié)構(gòu)
集合結(jié)構(gòu)- 這種結(jié)構(gòu)注意看,里面有很多元素,但是這些元素之間是沒(méi)有什么關(guān)系的類似我們OC里面的NSSet、NSMutableSet。
-
線性結(jié)構(gòu)
線性結(jié)構(gòu)- 線性結(jié)構(gòu)有什么特點(diǎn)呢?他們是有順序的,類似我們OC中的NSArray 、NSMutableArray都是線性結(jié)構(gòu)的
-
樹(shù)狀結(jié)構(gòu)
樹(shù)狀結(jié)構(gòu)- 樹(shù)狀結(jié)構(gòu)是一個(gè)或多個(gè)節(jié)點(diǎn)的有限集合。A為根節(jié)點(diǎn),因?yàn)樗畲?D是I&J的父節(jié)點(diǎn) ,I和J是兄弟節(jié)點(diǎn)
-
圖形結(jié)構(gòu)
圖形結(jié)構(gòu)- 圖形結(jié)構(gòu)簡(jiǎn)稱"圖",是一種相對(duì)復(fù)雜的數(shù)據(jù)結(jié)構(gòu),任意倆個(gè)節(jié)點(diǎn)之間都可以關(guān)聯(lián)
存儲(chǔ)結(jié)構(gòu)
數(shù)據(jù)結(jié)構(gòu)從邏輯上可以分為上面幾種,但是這些數(shù)據(jù)統(tǒng)統(tǒng)都是要存放到內(nèi)存里面去的,那么內(nèi)存存放數(shù)據(jù)也有不一樣的結(jié)構(gòu)
-
順序存儲(chǔ)結(jié)構(gòu)
順序存儲(chǔ)結(jié)構(gòu)- 這組存儲(chǔ)單元內(nèi)存地址是連續(xù)的
-
鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)- 這組存儲(chǔ)單元內(nèi)存地址可以是連續(xù)的,也可以是不連續(xù)的。它不要求邏輯上相鄰的元素在物理位置上也相鄰
線性表
- 什么是線性表
- 線性表就是多個(gè)具有相同特性的數(shù)據(jù)元素(節(jié)點(diǎn))組成的,有限而且有序的集合
- 當(dāng)線性表的節(jié)點(diǎn)個(gè)數(shù)為0時(shí),我們稱之為空表
- 線性表第一個(gè)元素成為首節(jié)點(diǎn),最后一個(gè)元素稱為尾節(jié)點(diǎn)
- 比如某個(gè)線性表的元素a1、a2、a3······a99。那么a1······a98都是前驅(qū),a98是a99的直接前驅(qū)
- 比如某個(gè)線性表的元素a1、a2、a3······a99。那么a2······a98 都是a1的后繼,a2是a1的直接后繼
- 線性表的順序存儲(chǔ)結(jié)構(gòu)
-
用一組地址連續(xù)的存儲(chǔ)單元一次存儲(chǔ)線性表的數(shù)據(jù)元素
順序存儲(chǔ)結(jié)構(gòu)
-
- 線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
-
用一組任意的存儲(chǔ)單元存儲(chǔ)線性表中的數(shù)據(jù)元素,它的存儲(chǔ)單元可以是連續(xù)的,也可以是不連續(xù)的
鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
-