佇列(一) 佇列的陣列實現方式

2022-08-17 17:48:15 字數 1142 閱讀 4004

1.佇列的概念

佇列是一種特殊的線性表,僅僅同意在佇列的一端進行插入而在還有一端進行刪除。

佇列一般擁有隊首(front指標)和隊尾(rear指標)。當乙個佇列並未存入資料的時候,front和rear指標均指向隊首。

入隊的操作:rear後移,存入資料在rear指向的單元,隊滿不可入隊,這同一時候也表明front總是指向隊首元素的前驅。

出隊的操作:front後移,元素出隊,隊空不可出隊。

注意:在這樣的佇列的實現方式下。浪費了乙個單元,可是這樣能夠保證隊滿和隊空是不同的條件來推斷。

2.佇列空和佇列滿

佇列空:front = rear

佇列滿:rear的下乙個單元就是front

3.佇列的陣列實現方式

#include #include typedef struct sq

qs;void init_quence(qs *s, int ms) /*初始化佇列*/

void in_quence(qs *s, int val) /*入隊函式*/

s->rear = (s->rear+1)%s->maxsize;

s->quence[s->rear] = val;

}int out_quence(qs *s) /*出隊函式*/

}void print_quence(qs *s) /*列印佇列中元素*/

while(i != s->rear);

}void clear_quence(qs *s) /*清除佇列*/

int count_quence(qs *s) /*統計佇列個數*/

while(i != s->rear);

return count;

}int main()

; init_quence(&s, 7);

for(i = 0; i < 7; i++)

printf("out quence number is: %d.\n", out_quence(&s));

print_quence(&s);

clear_quence(&s);

return 0;

}

程式執行截圖:

佇列(一) 佇列的陣列實現方式

1.佇列的概念 佇列是一種特殊的線性表,只允許在佇列的一端進行插入而在另一端進行刪除。佇列一般擁有隊首 front指標 和隊尾 rear指標 當乙個佇列並未存入資料的時候,front和rear指標均指向隊首。入隊的操作 rear後移,存入資料在rear指向的單元,隊滿不可入隊,這同時也表明front...

佇列實現系列(一) 佇列的陣列實現 Java版

佇列的原理見部落格 佇列 queue 原理 使用陣列來實現佇列時,如果用一般的方式實現,還是比較簡單的。一般佇列和迴圈佇列的實現,只是在個別地方會有不同,我在 裡已經注發布,根據自己需要修改即可。實現的操作 入隊出隊 獲取隊首元素 獲取佇列長度 輔助操作 判斷佇列是否為空 判斷佇列是否滿 清空佇列。...

容器 一 佇列容器List

list容器介紹 相對於vector容器的連續線性空間,list是乙個雙向鍊錶,它有乙個重要性質 插入操作和刪除操作都不會造成原有的list迭代器失效,每次插入或刪除乙個元素就配置或釋放乙個元素空間。也就是說,對於任何位置的元素插入或刪除,list永遠是常數時間。區別與其他佇列容器 vector,l...