先写头文件list.h
#pragma once
#define MAX_SIZE 100
//循环队列结构体设计:
typedef int ELEM_TYPE;
typedef struct Queue
{
ELEM_TYPE *base; //这个指针用来接收malloc从堆里申请的数组
int front;//队头指针(实际上保存的是数组下标,int)
int rear;//队尾指针 (实际上保存的是数组下标,int)
}Queue, *PQueue;
//增删改查
//初始化
void Init_queue(PQueue pq);
//入队
bool Push(PQueue pq, ELEM_TYPE val);
//出队(还要获取出队的值,需要借助一个输出参数rtval)
bool Pop(PQueue pq, ELEM_TYPE * rtval);
//获取队头值
bool Top(PQueue pq, ELEM_TYPE * rtval);
//判空
bool IsEmpty(PQueue pq);
//判满
bool IsFull(PQueue pq);
//获取有效长度
int Get_length(PQueue pq);
//查找
int Search(PQueue pq, ELEM_TYPE val);
//清空
void Clear(PQueue pq);
//销毁
void Destroy(PQueue pq);
//打印
void Show(PQueue pq);
再写list.cpp文件
#include <stdio.h>
#include <assert.h>
#include <st