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