#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 linkqueue
{
node *first, *rear;
}queue;
queue *insert(queue *HQ, int x)
{
node *s;
s = (node*)malloc(sizeof(node));
s->data = x;
s->next = NULL;
if(HQ->rear == NULL)
{
HQ->first = s;
HQ->rear = s;
}
else
{
HQ->rear->next = s;
HQ->rear = s;
}
return (HQ);
}
queue *del(queue *HQ)
{
node *p;
int x;
if( HQ->first == NULL )
{
printf("\n yichu");
}
else
{
x = HQ->first->data;
p = HQ->first;
if( HQ->first == HQ->rear )
{
HQ->first = NULL;
HQ->rear = NULL;
}
else
{
HQ->first = HQ->first->next;
free(p);
}
return (HQ);
}
}
//栈
typedef struct student
{
int data;
struct student *next;
}node;
typedef struct stackqueue
{
node *zhandi, *top;
}queue;
//入栈
queue *push( queue *HQ, int x )
{
node *p, *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 *pop(queue *HQ)
{
node *p;
int x;
if( HQ->zhandi == NULL )
{
printf("\n yichu");
}
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);
}
}
#include <stdio.h>
#include <string.h>
#include <conio.h>
using namespace std;
typedef struct student
{
int data;
struct student *next;
}node;
typedef struct linkqueue
{
node *first, *rear;
}queue;
queue *insert(queue *HQ, int x)
{
node *s;
s = (node*)malloc(sizeof(node));
s->data = x;
s->next = NULL;
if(HQ->rear == NULL)
{
HQ->first = s;
HQ->rear = s;
}
else
{
HQ->rear->next = s;
HQ->rear = s;
}
return (HQ);
}
queue *del(queue *HQ)
{
node *p;
int x;
if( HQ->first == NULL )
{
printf("\n yichu");
}
else
{
x = HQ->first->data;
p = HQ->first;
if( HQ->first == HQ->rear )
{
HQ->first = NULL;
HQ->rear = NULL;
}
else
{
HQ->first = HQ->first->next;
free(p);
}
return (HQ);
}
}
//栈
typedef struct student
{
int data;
struct student *next;
}node;
typedef struct stackqueue
{
node *zhandi, *top;
}queue;
//入栈
queue *push( queue *HQ, int x )
{
node *p, *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 *pop(queue *HQ)
{
node *p;
int x;
if( HQ->zhandi == NULL )
{
printf("\n yichu");
}
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);
}
}