#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
int data;
struct node *next;
} Node;
typedef struct queue
{
struct node *top;
struct node *tail;
} Queue;
int gettop(
struct queue *p)
{
return p->top-> data;
}
struct queue * push(
struct queue *p,
int x )
{
struct node *q;
q = (
struct node *)
malloc(
sizeof(
struct node));
q->data = x;
q->next = NULL;
if(p->top == NULL)
p->top = q, p->tail = q;
else
{
p->tail->next = q;
p->tail =q;
}
return p;
}
struct queue * pop(
struct queue *p)
{
struct node *q;
if(!p->top)
return NULL;
q = (
struct node *)
malloc(
sizeof(
struct node));
q = p->top;
p->top = p->top->next;
free(q);
return p;
}
int stempty(
struct queue *p)
{
return(p->top==NULL ?
0 :
1);
}
int main()
{
struct queue *p;
int n;
p = (Queue *)
malloc(
sizeof(Queue));
p->top = NULL;
p->tail = NULL;
int a[
6] = {
1,
2,
3,
4,
5,
6},t =
7;
int i;
for(i=
0; i<
6; i++)
{
p = push(p,a[i]);
}
p = push(p,t);
p = pop(p);
p = pop(p);
p = pop(p);
printf(
"%d\n",gettop(p));
while(p->top !=NULL)
{
printf(
"%d ",p->top->data);
printf(
"%d\n",stempty(p));
p->top=p->top->next;
}
printf(
"%d\n",stempty(p));
return 0;
}
转载请注明原文地址: https://ju.6miu.com/read-34084.html