資料結構 佇列(一)

2021-08-31 04:09:08 字數 1078 閱讀 1229

圖一:線性佇列                                           圖二:環形佇列

一、線性佇列和環形佇列的比較

二、深入了解環形佇列

front隊頭:第乙個元素的下標

隊滿:(rear+1)%n==front 

隊空:  front==rear

首先,我們要學會定義乙個結構體,這個環形佇列中就包括了資料,front,rear

#define size 10

typedef struct squeue

squeue,*psqueue;

//初始化

void initqueue(psqueue ps)

ps->front = 0;

ps->rear = 0;

}//判滿

static bool isfull(psqueue ps)

//入隊

bool push(psqueue ps,int val)

ps->elem[ps->rear] = val;

ps->rear = (ps->rear+1)%size;

return true;

}//獲取隊頭的值,但不刪除

bool gettop(psqueue ps,int *rtval)

if(rtval != null)

return true;

}//獲取隊頭的值,且刪除

bool pop(psqueue ps,int *rtval)

if(rtval != null)

int *p=ps->front;

ps->front=p->front;

free(p);

return true;

}//判斷隊空

bool isempty(psqueue ps)

return front==rear;

資料結構 佇列(一)

概念簡述 特點 原理實現 時間複雜度分析 佇列是一種特殊的線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作 出隊 而在表的 後端 rear 進行插入操作 入隊 進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊首。佇列中 沒有元素時,稱為空佇列。和棧一樣,佇列是一種操作受限制的線性表,...

資料結構 佇列

一 佇列的迴圈陣列實現。1 初始化 空佇列。令rear front 0。2 入佇列 約定rear指向佇列尾元素的下乙個位置。入佇列時,先判斷佇列是否已滿,而後將array rear x 然後rear 3 出佇列 約定front指向佇列的首元素位置。出佇列時,先判斷佇列是否為空,而後返回隊首元素re ...

資料結構 佇列

資料參考自 資料結構c 語言描述 佇列是一種先進先出的資料結構,這與棧正好相反。下例是簡單的queue實現 queue.h檔案 ifndef queue h define queue h include include 資料元素結構 自定義 struct datatype 佇列元素最大數 const...