#include<stdio.h>
#include<stdlib.h>
typedef struct Queue {
int* data;
int head, tail, length;
}Queue;
//结构体框架-----------------------
void init(Queue* q, int len) { //初始化大小为len的空间
q->data = (int*)malloc(sizeof(int) * len);
q->head = 0; //队列刚开始head = 0
q->tail = -1; //tail为-1
q->length = len;
}
//初始化结束-----------------------
void push(Queue* q, int value) { //把value插入队尾
if (q->tail + 1 >= q->length) { //判断该队列是否已满
return;
}
q->tail++;
q->data[q->tail] = value;
return;
}
//插入元素------------------------
void output(Queue* q) { //遍历队列中的所有元素 输出
for (int i = q->head; i <= q->tail; i++) {
printf("%d ", q->data[i]);
}
printf("\n");
}
//遍历元素------------------------
int front(Queue* q) {
return q->data[q->head];
}
//输出队首元素----------------------
void pop(Queue* q) {
q->head++;
return;
}
//删除队首元素----------------------
int empty(Queue* q) {
return q->head > q->tail; //为空:返回1 //不为空:返回0
}
//判断是否为空----------------------
void clear(Queue* q) {
free(q->data);
free(q);
}
//析构结束------------------------
int main() {
Queue* queue = (Queue*)malloc(sizeof(Queue));
init(queue, 100);
for (int i = 1; i <= 10; i++) {
push(queue, i);
}
output(queue);
if (!empty(queue)) {
printf("%d\n", front(queue));
pop(queue);
}
output(queue);
clear(queue);
system("pause");
return 0;
}
数据结构--队列(C language)
最新推荐文章于 2024-11-09 12:08:08 发布