佇列是一種先進先出(fifo)的特殊線性表。它只允許在表的一端進行插入,而在另一端刪除元素。
在佇列中,允許插入的一端叫做隊尾,允許刪除的一端則稱為隊頭。
佇列的基本操作也有三種,分別為:入佇列、出佇列、取隊首元素。
seqqueue.h:#pragma once
#include#include#includetypedef char seqqueuetype;
typedef struct seqqueueseqqueue;
void seqqueueinit(seqqueue* s);
void seqqueuepush(seqqueue* s,seqqueuetype value);
void seqqueuepop(seqqueue* s);
int seqqueuefront(seqqueue* s,seqqueuetype* value);
void seqqueuedestroy(seqqueue* s);
void seqqueueprint(seqqueue* s,const char* msg);
void seqqueueresize(seqqueue* s);
seqqueue.c:#include "seqqueue.h"
void seqqueueinit(seqqueue* s)
s->head = 0;
s->tail = 0;
s->size = 0;
s->capacity = 1024;
s->data = (seqqueuetype*)malloc(s->capacity * sizeof(seqqueuetype));
return;
}void seqqueuedestroy(seqqueue* s)
s->head = 0;
s->tail = 0;
s->size = 0;
s->capacity = 0;
free(s->data);
return;
}void seqqueueprint(seqqueue* s,const char* msg)
printf("\n");
}void seqqueuepush(seqqueue* s,seqqueuetype value)
if(s->size > s->capacity)
s->data[s->tail++] = value;
if(s->tail >= s->capacity)
++s->size;
}void seqqueueresize(seqqueue* s)
if(s->size < s->capacity)
seqqueuetype* new_ptr = (seqqueuetype*)malloc(s->capacity * sizeof(seqqueuetype)*2+1);
size_t i = 0;
for(;i < s->size;i++)
free(s->data);
s->data = new_ptr;
}void seqqueuepop(seqqueue* s)
if(s->size == 0)
++s->head;
if(s->head >= s->capacity)
--s->size;
return;
}int seqqueuefront(seqqueue* s,seqqueuetype* value)
if(s->size == 0)
*value = s->data[s->head];
return 1;
}
test.c:#include "seqqueue.h"
#define print_head printf("\n**********==%s**********==\n",__function__)
void test()
int main()
結果演示:
順序表實現佇列
一.佇列相關概念 佇列是只允許在一段進行插入元素,在另一端進行刪除元素的線性表,即只允許對佇列進行尾插,頭刪的操作.佇列具有先進先出,後進後出的特性.1.初始化 2.列印佇列資訊 void testprintchar seqque q,char msg int i q head for i q ta...
佇列及順序表實現佇列
1.佇列是一種特殊的線性表,是只允許表的一端進行插入操作,而表的另一端進行刪除操作的線性表。進行插入操作的一端是表尾 rear 進行刪除操作的一端是表頭 front 當佇列中沒有資料元素時,稱為空佇列。2.佇列的特點 先進先出 1.什麼是順序佇列 用一片連續的儲存空間來儲存佇列中的資料元素,這樣的佇...
單鏈表實現佇列 順序表實現佇列
一 sysutil.h 系統標頭檔案 include include include include include include include 記憶體洩漏工具的標頭檔案二 單鏈表實現佇列函式 include sysutil.h define queueelemtype int 鏈佇列typed...