首先要清楚队列的特点:先进先出
一、顺序队列
队尾插,对头出,同时和顺序栈相同,要动态申请内存。
#pragma once
#include<stdio.h>
typedef char ListQueueType;
typedef struct ListQueue
{
ListQueueType* data;
int size;//已有元素
int capacity;//数据容量
int head;//头
int tail;//尾
}ListQueue;
void Init(ListQueue* queue);//初始化
void Destory(ListQueue* queue);//销毁队列
void Expansion(ListQueue* queue);//扩容
void Push(ListQueue* queue,ListQueueType value);//写入队列
void Pop(ListQueue* queue);出队列
int front(ListQueue* queue,ListQueueType* value);//队首元素
#include<stdio.h>
#include"queue.h"
#include<stdlib.h>
void Init(ListQueue* queue)
{
if(queue == NULL)
{
//非法输入
return;
}
queue->size = 0;
queue->capacity = 1000;
queue->head = 0;
queue->tail = 0;
queue->data = (ListQueueType*)malloc(sizeof(ListQueueType)*(queue->capacity));
return;
}
//销毁
void Destory(ListQueue* queue)
{
if(queue == NULL)
{
return;
}
free(queue->data);
queue->size = 0;
queue->capacity = 0;
queue->head = 0;
queue->tail = 0;
return;
}