栈
Stack.h
#pragma once
#include<stdio.h>
#include<assert.h>
#include<stdbool.h>
#include<stdlib.h>
typedef int STDataType;
typedef struct Stack
{
STDataType* a;
int top;//栈顶
int capacity;//栈的总容量
}ST;
void STInit(ST* pst); //初始化栈
void STDestroy(ST* pst);//摧毁栈
void STPush(ST* pst, STDataType x);//插入数据
void STPop(ST* pst);//删除数据
STDataType STTop(ST* pst);//栈顶 元素
bool STEmpty(ST* pst);//判断 栈是否为空
int STSize(ST* pst);//栈的元素 个数
Stack.c
队列
Queue.h
#pragma once
#include<stdio.h>
#include<assert.h>
#include<stdbool.h>
#include<stdlib.h>
typedef int QDataType;
typedef struct QueueNode
{
QDataType data;
struct QueueNode* next;
}QNode;
typedef struct Queue
{
QNode* phead;
QNode* ptail;
int size;
}Queue;
void QueueInit(Queue* pq);//初始化队列
void QueueDestroy(Queue* pq);//摧毁队列
void QueuePush(Queue* pq,QDataType x);//插入队列
void QueuePop(Queue* pq);//删除队列
QDataType QueueFront(Queue* pq); //队列头部
QDataType QueueBack(Queue* pq); //队列尾部
int QueueSize(Queue* pq);//查看队列的总长
bool QueueEmpty(Queue* pq);//判断队列为不为空
Queue.c