數(shù)據(jù)結(jié)構(gòu)是相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。
線(xiàn)性表
線(xiàn)性表:List,零個(gè)或多個(gè)數(shù)據(jù)元素的有限序列。
順序表:一段地址連續(xù)的存儲(chǔ)單元依次存儲(chǔ)線(xiàn)性表的數(shù)據(jù)元素。
#defineMAXSIZE100 //表的最大長(zhǎng)度
typedefintdata_t;
typedefstruct{
data_tdata[MAXSIZE]; //表的存儲(chǔ)空間
intlast; //表的當(dāng)前長(zhǎng)度
}*seqlist_t
單鏈表:結(jié)點(diǎn)存儲(chǔ)了數(shù)據(jù)元素和后繼元素的存儲(chǔ)地址,鏈接成表。
typedefintdata_t;
typedefstructnode{
data_tdata;//存放數(shù)據(jù)
structnode*next;//存放后繼結(jié)點(diǎn)地址
}*linklist_t
雙鏈表:結(jié)點(diǎn)存儲(chǔ)了數(shù)據(jù)元素,以及前驅(qū)和后繼元素的存儲(chǔ)地址,鏈接成表。
typedefintdata_t;
typedefstructnode{
data_tdata;//存放數(shù)據(jù)
structnode*prior; //存放前驅(qū)結(jié)點(diǎn)地址
structnode*next;//存放后繼結(jié)點(diǎn)地址
}*dlinklist_t
棧
棧:Stack,是限定僅在表尾進(jìn)行插入和刪除操作的線(xiàn)性表。
順序棧:一段地址連續(xù)的存儲(chǔ)單元,由數(shù)組定義,配合數(shù)組下標(biāo)表示棧頂指針。
#defineMAXSIZE100//棧的最大長(zhǎng)度
typedefintdata_t;
typedefstruct{
data_tdata[MAXSIZE]; //棧的存儲(chǔ)空間
inttop;//棧的棧頂位置
}*seqstack_t
鏈?zhǔn)綏#褐荒茉阪湵眍^部進(jìn)行插入和刪除操作的單鏈表,鏈表尾部就是棧底,鏈表頭指針就是棧頂指針。
typedefintdata_t;
typedefstructnode{
data_tdata; //存放數(shù)據(jù)
structnode*next;//存放后繼結(jié)點(diǎn)地址
}*linkstack_t
隊(duì)列
隊(duì)列:Queue,是只允許在一端進(jìn)行插入操作,另一端進(jìn)行刪除操作的線(xiàn)性表。
順序隊(duì)列:一段地址連續(xù)的存儲(chǔ)單元,由數(shù)組定義,配合數(shù)組下標(biāo)表示隊(duì)頭和隊(duì)尾。
#defineMAXSIZE100//隊(duì)列的最大長(zhǎng)度
typedefintdata_t;
typedefstruct{
data_tdata[MAXSIZE];//隊(duì)列的存儲(chǔ)空間
intfront,rear;//隊(duì)頭隊(duì)尾的位置
}*seqqueue_t
鏈?zhǔn)疥?duì)列:只能在鏈尾插入、鏈頭刪除元素的單鏈表。
typedefintdata_t;
typedefstructqnode{//隊(duì)列的結(jié)點(diǎn)結(jié)構(gòu)
data_tdata;//存放數(shù)據(jù)
structqnode*next; //存放后繼結(jié)點(diǎn)地址
}*qnode_t;
typedefstruct{//隊(duì)列的鏈表結(jié)構(gòu)
qnode_tfront,rear; //隊(duì)頭隊(duì)尾指針
}*linkqueue_t
二叉樹(shù)
二叉樹(shù):Binary Tree,是n(n≥0)個(gè)節(jié)點(diǎn)的有限集合,它或者是空集(n=0),或者是由一個(gè)根節(jié)點(diǎn)以及兩棵互不相交的、分別稱(chēng)為左子樹(shù)和右子樹(shù)的二叉樹(shù)組成。
typedefintdata_t;
typedefstructbnode{
data_tdata; //存放數(shù)據(jù)
structbnode*lchild,*rchild; //左右孩子指針
}*btree_t;
審核編輯:湯梓紅
-
嵌入式
+關(guān)注
關(guān)注
5200文章
20458瀏覽量
334321 -
代碼
+關(guān)注
關(guān)注
30文章
4968瀏覽量
74010 -
數(shù)據(jù)結(jié)構(gòu)
+關(guān)注
關(guān)注
3文章
573瀏覽量
41608
原文標(biāo)題:不同數(shù)據(jù)結(jié)構(gòu)的定義代碼
文章出處:【微信號(hào):嵌入式攻城獅,微信公眾號(hào):嵌入式攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
什么是數(shù)據(jù)結(jié)構(gòu)(Data Structrue)
數(shù)據(jù)結(jié)構(gòu)
C語(yǔ)言與數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)結(jié)構(gòu)鏈表的基本操作
數(shù)據(jù)結(jié)構(gòu)教程,下載
什么叫數(shù)據(jù)結(jié)構(gòu)?
什么是數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)結(jié)構(gòu)與算法
數(shù)據(jù)結(jié)構(gòu)是什么_數(shù)據(jù)結(jié)構(gòu)有什么用
為什么要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)?數(shù)據(jù)結(jié)構(gòu)的應(yīng)用詳細(xì)資料概述免費(fèi)下載
什么是數(shù)據(jù)結(jié)構(gòu)?為什么要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)?數(shù)據(jù)結(jié)構(gòu)的應(yīng)用實(shí)例分析
Linux內(nèi)核代碼中常用的數(shù)據(jù)結(jié)構(gòu)有哪些?
NetApp的數(shù)據(jù)結(jié)構(gòu)是如何演變的
Linux內(nèi)核中使用的數(shù)據(jù)結(jié)構(gòu)
epoll的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)
不同數(shù)據(jù)結(jié)構(gòu)的定義代碼
評(píng)論