C語言 佇列 順序結構 陣列實現

2021-10-08 19:08:10 字數 1813 閱讀 7943

#include#include// 陣列去模擬棧佇列的順序儲存

#define max_size 1024

//順序佇列結構體

typedef struct seqqueue seqqueue;

//初始化棧

seqqueue* init_seqqueue()

queue->size = 0;

return queue;

}// 入隊

void push_seqqueue(seqqueue* queue, void* data)

if (queue->size == max_size)

if (data == null)

queue->data[queue->size] = data;

queue->size++;

}//出隊

void* pop_seqqueue(seqqueue* queue)

if (queue->size == 0)

void *top = queue->data[0];

for (int i = 0; i < queue->size - 1; i++)

queue->size--;

return top;

}//返回隊尾元素

void* back_seqqueue(seqqueue* queue)

if (queue->size == 0)

return queue->data[queue->size - 1];

}//判斷是否為空

int isempty(seqqueue* queue)

if (queue->size == 0)

return 0;

}//返回佇列中元素個數

int size_seqqueue(seqqueue* queue)

return queue->size;

}//清空棧

void clear_seqqueue(seqqueue* queue)

for (int i = 0; i < queue->size; i++)

queue->size = 0;

}//銷毀

void freespace_seqqueue(seqqueue* queue)

free(queue);

}typedef struct person person;

int main(void) ;

person p2 = ;

person p3 = ;

person p4 = ;

person p5 = ;

//入隊

push_seqqueue(queue, &p1);

push_seqqueue(queue, &p2);

push_seqqueue(queue, &p3);

push_seqqueue(queue, &p4);

push_seqqueue(queue, &p5);

//輸出隊尾元素

person *backperson = (person*)back_seqqueue(queue);

printf("name:%s age:%d\n", backperson->name, backperson->age);

//輸出

while (size_seqqueue(queue) > 0)

//釋放記憶體

freespace_seqqueue(queue);

system("pause");

return 0;

}

C語言 順序結構(陣列)的迴圈佇列

順序結構的迴圈佇列 include include define maxsize 5 typedef struct qu qu inital 初始化佇列 void add qu q,int val 佇列中新增元素 void dele qu q,int val 佇列中刪除元素 int length q...

佇列的順序儲存結構(迴圈佇列)(C語言實現)

1 include 2 include 3 4 define ok 1 5 define err 2 6 define true 1 7 define false 0 8 define maxsize 4 定義佇列的最大長度 910 typedef int status 定義函式返回的狀態,ok e...

資料結構 佇列(C語言陣列實現)

資料結構 佇列 c語言陣列實現 佇列是先進先出的過程。簡單地畫一幅畫來描述一下佇列 乙個簡單的 由陣列實現的佇列,可以由以下幾種最基本的操作組成 1 判斷佇列是否為空 2 判斷佇列是否已經滿了 3 入隊 4 出隊 如下 include include 佇列大小 define size 1024 st...