一、棧
簡介
- 概念:一種特殊的線性表——先進後出(Last In First Out )的線性表。
- 特點:先進後出,只能從棧頂彈出(pop)或壓入(push)數據。
- 存儲結構:順序存儲和鏈式存儲(常用)。
結構代碼
注:鏈式存儲
// 定義鏈表元素所存儲的數據類型(以int爲例)
typedef int ElemType;
// 定義棧的結點結構及結點指針類型
typedef struct StackNode;
{
ElemType data;
struct StackNode *next;
}StackNode, *StackNodePtr;
// 定義指向棧的結構
typedef struct LinkStack
{
StackNodePtr top; // 指向棧頂結點的指針
unsigned int cnt; // 棧內元素的個數
}
應用場景
計算器(利用後綴表達書)、頁面的跳轉回退等。
二、隊列
簡介
- 概念:一種特殊的線性表——先進先出(First In First Out).的線性表
- 特點:先進先出,隊尾插入、對頭刪除。
- 存儲結構:順序存儲(循環隊列)和鏈式存儲(常用)。
結構代碼
注:鏈式存儲
// 定義鏈表元素所存儲的數據類型(以int爲例)
typedef int ElemType;
// 定義隊列的結點結構及結點指針類型
typedef struct QueueNode
{
ElemType data;
struct QueueNode *next;
}QueueNOde, *QueueNodePtr;
// 定義隊列的鏈表結構
typedef struct LinkQueue
{
QueueNodePtr head, tail; // 指向隊列頭部和尾部的指針
}
應用場景
排隊買票、搶購等先到先得的場景。
Email : [email protected]
Website : http://beyonderwei.com
WeChat: