赞
踩
- #include<stdio.h>
-
- #include<stdlib.h>
-
-
-
- typedef struct Lnode
-
- {
-
- int data;
-
- struct Lnode *next;
-
- }LinkList;
-
-
-
- typedef struct
-
- {
-
- LinkList *front;
-
- LinkList *rear;
-
- }LinkQueue;
-
-
-
- int InQueue(LinkQueue *LQ)
-
- {
-
- LinkList *p=(LinkList*)malloc(sizeof(LinkList));
-
- if(p==NULL)
-
- {
-
- printf("初始化失败!\n");
-
- return 0;
-
- }
-
- p->next=NULL;
-
- LQ->front=LQ->rear=p;
-
- return 1;
-
- }
-
-
-
- int EmptyQueue(LinkQueue *LQ)
-
- {
-
- if(LQ->front==LQ->rear)
-
- {
-
- printf("队列空!\n");
-
- return 1;
-
- }
-
- return 0;
-
- }
-
-
-
- int EnQueue(LinkQueue *LQ, int x)
-
- {
-
- LinkList *s=(LinkList *)malloc(sizeof(LinkList));
-
- if(s==NULL)
-
- {
-
- printf("分配空间失败!\n");
-
- return 0;
-
- }
-
- s->data=x;
-
- s->next=NULL;
-
- LQ->rear->next=s;
-
- LQ->rear=s;
-
- return 1;
-
- }
-
-
-
- int GetFront(LinkQueue *LQ, int *x)
-
- {
-
- if(EmptyQueue(LQ))
-
- {
-
- printf("队空!\n");
-
- return 0;
-
- }
-
- *x=LQ->front->next->data;
-
- return 1;
-
- }
-
-
-
- int OutQueue(LinkQueue *LQ, int *x)
-
- {
-
- LinkList *p;
-
- if(EmptyQueue(LQ))
-
- {
-
- printf("队空!\n");
-
- return 0;
-
- }
-
- p=LQ->front->next;
-
- *x=p->data;
-
- LQ->front->next=p->next;
-
- if(LQ->front->next==NULL)
-
- {
-
- LQ->rear=LQ->front;
-
- }
-
- free(p);
-
- return 1;
-
- }
-
-
-
- int main()
-
- {
-
- LinkQueue *Q;
-
- Q=(LinkQueue *)malloc(sizeof(LinkQueue));
-
- LinkList *p;
-
- int n,m,x,fx;
-
- InQueue(Q);
-
- printf("请输入入队元素个数n:\n");
-
- scanf("%d",&n);
-
- printf("请输入入队元素:\n");
-
- for(int i=1; i<=n; i++)
-
- {
-
- scanf("%d",&m);
-
- EnQueue(Q, m);
-
- }
-
-
-
- GetFront(Q, &fx);
-
- printf("队首元素:%d\n", fx);
-
-
-
- printf("输出队列元素:\n");
-
- for(p=Q->front->next; p!=NULL; p=p->next)
-
- {
-
- printf("%3d", p->data);
-
- }
-
- for(int i=1; i<=n; i++)
-
- {
-
- OutQueue(Q, &x);
-
- printf("\n出队元素:%d\n", x);
-
- }
-
-
-
- system("pause");
-
- return 0;
-
- }
-
运行结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。