專題一 線性結構的兩種常見應用之一 佇列

2021-09-11 19:57:38 字數 1479 閱讀 5924

一、定義

一種可以實現「先進先出」的儲存結構(只在一端進行操作)

二、分類

1.鏈式佇列 --鍊錶實現

2.靜態佇列 --陣列實現

三、應用

所有和時間有關的操作都有佇列的影子

四、程式

/**

**實現功能:基於陣列的迴圈佇列實現

**最後修改日期:2019.03.03

**///標頭檔案

#include#include#include#define len 5 //巨集定義,佇列長度(陣列中預留一位不賦值,方便操作,例len=5時,佇列實際可用長度為4)

//結構體

typedef struct queue

queue, *pqueue;

//函式宣告

void initqueue(pqueue); //初始化佇列

bool isfull(pqueue); //判斷佇列是否滿

bool isempty(pqueue); //判斷佇列是否空

bool inqueue(pqueue, int); //入隊

bool outqueue(pqueue); //出隊

void displayqueue(pqueue); //顯示佇列

//主函式

int main()

//初始化佇列

void initqueue(pqueue pqueue)

//判斷佇列是否已滿,當對尾加一取餘等於對頭的時候說明佇列已滿

bool isfull(pqueue pqueue)

//判斷佇列是否為空,當佇列對頭等於對尾時說明隊列為空

bool isempty(pqueue pqueue)

//入隊

bool inqueue(pqueue pqueue, int val)

pqueue->pbase[pqueue->rear] = val; //當佇列沒滿時,入隊的元素存放在隊尾的位置

pqueue->rear = (pqueue->rear + 1) % len; //隊尾向後移一位

return true;

}//出隊

bool outqueue(pqueue pqueue)

pqueue->front = (pqueue->front + 1) % len; //因為不需要釋放空間,所以直接將對頭向後移一位

return true;

}//遍歷佇列

void displayqueue(pqueue pqueue)

printf("\n");

return;

}

專題一 線性結構的兩種常見應用之一棧

一 定義 一種可以實現 先進後出 的儲存結構,棧類似於乙個箱子 二 分類 1.靜態棧 核心用陣列實現 2.動態棧 核心用鍊錶實現 三 演算法 出棧 壓棧 入棧 四 應用 函式呼叫 中斷表示式求值 科學計算器 記憶體分配 緩衝處理 迷宮五 程式 include include include 節點的結...

資料結構《十一》 執行緒結構 佇列的兩種實現

乙個佇列的抽象資料型別 package com.mo.queue 佇列的抽象資料結構 public inte ce queue 陣列實現的佇列 package com.mo.queue 順序迴圈佇列 陣列實現 public class seqqueue implements queue public...

資料結構 兩種常見的查詢演算法

查詢是在大量的資訊中尋找乙個特定的資訊元素,在計算機應用中,查詢是常用的基本運算 順序查詢演算法 演算法思想 演算法實現演算法的c 實現,實現 來自王治和教授資料結構課堂的總結 enum error code error code sequentialsearch int entry,int siz...