數據結構——棧、隊列

一、棧

簡介

  • 概念:一種特殊的線性表——先進後出(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:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章