queue.h
#include<iostream>
struct MyStruct
{
int a[10];
int top;
};
typedef struct MyStruct Struct;
void init(Struct *p);//初始化栈
int isempty(Struct *p);//判断是否为空
int isfull(Struct *p);//判断是否溢出
void push(Struct *p, int key);//入栈
int pop(Struct *p);//出栈
栈实现.cpp
#include"queue.h"
void init(Struct *p)//初始化栈
{
memset(p->a, 0, sizeof(int) * 10);//数据清零
p->top = -1;
}
int isempty(Struct *p)//判断是否为空
{
if (p->top == -1)
{
return 1;
}
else
{
return 0;
}
}
int isfull(Struct *p)//判断是否溢出
{
if (p->top == 9)
{
return 1;
}
else
{
return 0;
}
}
void push(Struct *p, int key)//入栈
{
if (isfull(p))
{
return;
}
else
{
p->a[++p->top] = key;
}
}
int pop(Struct *p)//出栈
{
if (isempty(p))
{
return -1;
}
else
{
return p->a[p->top--];
}
}
主程序
#include"queue.h"
using namespace std;
int main(int argc, char *argv[])
{
int a[10] = { 0,1,2,3,4,5,6,7,8,9 };
Struct p;
init(&p);
for (size_t i = 0; i < 10; i++)
{
push(&p, a[i]);
}
for (size_t i = 0; i < 10; i++)
{
cout << pop(&p) << " ";
}
system("pause");
return 0;
}