數據結構是相互之間存在一種或多種特定關系的數據元素的集合。
線性表
線性表:List,零個或多個數據元素的有限序列。
順序表:一段地址連續的存儲單元依次存儲線性表的數據元素。
#defineMAXSIZE100 //表的最大長度 typedefintdata_t; typedefstruct{ data_tdata[MAXSIZE]; //表的存儲空間 intlast; //表的當前長度 }*seqlist_t
單鏈表:結點存儲了數據元素和后繼元素的存儲地址,鏈接成表。
typedefintdata_t; typedefstructnode{ data_tdata;//存放數據 structnode*next;//存放后繼結點地址 }*linklist_t
雙鏈表:結點存儲了數據元素,以及前驅和后繼元素的存儲地址,鏈接成表。
typedefintdata_t; typedefstructnode{ data_tdata;//存放數據 structnode*prior; //存放前驅結點地址 structnode*next;//存放后繼結點地址 }*dlinklist_t
棧
棧:Stack,是限定僅在表尾進行插入和刪除操作的線性表。
順序棧:一段地址連續的存儲單元,由數組定義,配合數組下標表示棧頂指針。
#defineMAXSIZE100//棧的最大長度 typedefintdata_t; typedefstruct{ data_tdata[MAXSIZE]; //棧的存儲空間 inttop;//棧的棧頂位置 }*seqstack_t
鏈式棧:只能在鏈表頭部進行插入和刪除操作的單鏈表,鏈表尾部就是棧底,鏈表頭指針就是棧頂指針。
typedefintdata_t; typedefstructnode{ data_tdata; //存放數據 structnode*next;//存放后繼結點地址 }*linkstack_t
隊列
隊列:Queue,是只允許在一端進行插入操作,另一端進行刪除操作的線性表。
順序隊列:一段地址連續的存儲單元,由數組定義,配合數組下標表示隊頭和隊尾。
#defineMAXSIZE100//隊列的最大長度 typedefintdata_t; typedefstruct{ data_tdata[MAXSIZE];//隊列的存儲空間 intfront,rear;//隊頭隊尾的位置 }*seqqueue_t
鏈式隊列:只能在鏈尾插入、鏈頭刪除元素的單鏈表。
typedefintdata_t; typedefstructqnode{//隊列的結點結構 data_tdata;//存放數據 structqnode*next; //存放后繼結點地址 }*qnode_t; typedefstruct{//隊列的鏈表結構 qnode_tfront,rear; //隊頭隊尾指針 }*linkqueue_t
二叉樹
二叉樹:Binary Tree,是n(n≥0)個節點的有限集合,它或者是空集(n=0),或者是由一個根節點以及兩棵互不相交的、分別稱為左子樹和右子樹的二叉樹組成。
typedefintdata_t; typedefstructbnode{ data_tdata; //存放數據 structbnode*lchild,*rchild; //左右孩子指針 }*btree_t;
審核編輯:湯梓紅
-
嵌入式
+關注
關注
5068文章
19017瀏覽量
303240 -
代碼
+關注
關注
30文章
4747瀏覽量
68348 -
數據結構
+關注
關注
3文章
573瀏覽量
40092
原文標題:不同數據結構的定義代碼
文章出處:【微信號:嵌入式攻城獅,微信公眾號:嵌入式攻城獅】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論