C++代码如下:
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <conio.h>
using namespace std;
typedef struct student
{
int data;
struct student *next;
}node;
typedef struct stackqueue //栈有两个节点,栈顶和栈底
{
node *zhandi,*top;
}queue;
queue *insert(queue *HQ,int x) //入栈
{
node *s;
s=(node *)malloc(sizeof(node));
s->data=x;
s->next=NULL;
if (HQ->zhandi==NULL)
{
HQ->zhandi=s;
HQ->top=s;
}
else
{
HQ->top->next=s;
HQ->top=s;
}
return HQ;
}
queue *del(queue *HQ) //出栈
{
node *p;
int x;
if (HQ->zhandi==NULL)
{
cout<<"溢出";
}
else
{
x=HQ->zhandi->data;
p=HQ->zhandi;
if (HQ->zhandi==HQ->top)
{
HQ->zhandi=NULL;
HQ->top=NULL;
}
else
{
while(p->next!=HQ->top)
{
p=p->next;
}
HQ->top=p;
HQ->top->next=NULL;
}
return HQ;
}
}