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...