資料結構之佇列的線性儲存結構(C語言)

2021-10-09 05:02:30 字數 1650 閱讀 8025

**如下:

#include

#include

#include

#include

#define maxsize 10

typedef

int elemtype;

typedef

struct

queue;

//初始化操作,建立乙個空佇列q;

void

initqueue

(queue *q)

;//若佇列q存在,則銷毀他

void

destroyqueue

(queue *q)

;//將佇列q清空

void

clearqueue

(queue *q)

;//若隊列為空,返回true,否則返回false

bool queueempty

(queue q)

;//若佇列存在且非空,用e返回佇列的對頭元素

void

gethead

(queue q, elemtype *e)

;//若佇列q存在,插入新元素e到佇列q中並成為隊尾元素

bool enqueue

(queue *q, elemtype e)

;//刪除佇列q中對頭元素,並用e返回其值

bool dequeue

(queue *q, elemtype *e)

;//返回佇列q的元素個數

intqueuelength

(queue q)

;//將佇列中所有元素出列

void

queueshow

(queue *q)

;int

main()

void

initqueue

(queue *q)

else

}bool enqueue

(queue *q, elemtype e)

q->data[q->rear]

= e;

q->rear =

(q->rear +1)

% maxsize;

return true;

}bool dequeue

(queue *q, elemtype *e)

*e = q->data[q->front]

; q->front =

(q->front +1)

% maxsize;

return true;

}bool queueempty

(queue q)

void

gethead

(queue q, elemtype *e)

intqueuelength

(queue q)

void

clearqueue

(queue *q)

q->front =0;

q->rear =0;

}void

queueshow

(queue *q)

while(!

queueempty

(*q)

)printf

("\n");

}

資料結構之線性結構之佇列

佇列 操作受限制的線性表 先進先出,一端插入,另一端輸出 如果是正常的線狀佇列,前面刪除資料部分的空間無法使用,會造成浪費 所有出現迴圈佇列 迴圈佇列會出現的問題 空滿時front rear都是相等,無法區分 原因 n種長度值對應n 1種情況 解決方法 使用額外標記 size或者tag 僅僅使用n ...

資料結構之線性佇列

1 佇列的定義及基本運算 定義 佇列 queue 是只允許在一端進行插入,而在另一端進行刪除的運算受限的線性表 1 允許刪除的一端稱為隊頭 front 2 允許插入的一端稱為隊尾 rear 3 當佇列中沒有元素時稱為空佇列 4 佇列亦稱作先進先出 first in first out 的線性表,簡稱...

資料結構 線性結構 佇列

陣列佇列 public class arrayqueuedemo class arrayqueue 判斷佇列是否已滿 public boolean isfull 判斷佇列是否為空 public boolean isempty 新增資料佇列 public void add int n rear arr...