void push(MyStack *s,char x)//将x压入栈顶
{
s->element[s->top]=x;
s->top++;
}
void pop(MyStack *s)//将栈顶元素删除
{
s->top--;
}
int IsEmpty(MyStack *s)//判断栈是否为空,栈空返回1
{
if (s->top==0) {
return 1;
}else
{
return 0;
}
}
void ClearStack(MyStack *s)//清空栈
{
s->top=0;
}
void DisplayStack(MyStack *s)//显示从栈底到栈顶所有的元素
{
int i;
if (s->top==0) {
printf("栈为空!");
}else
{
for (i=0; i<s->top; i++) {
printf("%c",s->element[i]);
}
}
}
int queue [MAX_SIZE]={};//存放整形数据的队列
int front =-1;//队列头
int rear =-1;//队列尾
//入队,参数为进入队列的元素
void add(int value)
{
if (rear>=MAX_SIZE-1) {
printf("The queue is full.\n");
}else
{
queue[++rear]=value;//队列尾添加新元素
}
}
//出队,返回值为队列的元素
int del()
{
int temp;
if (front==rear) {
printf("The queue is empty.\n");
return -1;
}else
{
temp=queue[++front];//取出队列头的元素
queue[front]=0;//将队列头元素值置为0
return temp;//返回队列头的元素
}
}
//显示队列中所有元素
void DisplayQueue()
{
int i=0;
for (i=0; i<=MAX_SIZE; ++i) {
if (queue[i]!=0) {//打印队列中不为0的元素,为0代表已出队
printf("[%d]",queue[i]);
}
}
}