数据结构.队列(C语言实现)
来源:互联网 发布:java支付开发demo 编辑:程序博客网 时间:2024/04/29 19:27
#include<stdio.h>
#include<stdlib.h>
#define Status int
#define OK 1
#define ERROR 0
#define QElemType int
typedef struct QNode {
QElemType data;
struct QNode *next;
}QNode, *QueuePtr;
typedef struct {
QueuePtr front;
QueuePtr rear;
}LinkQueue;
//Init queue
Status InitQueue(LinkQueue *Q)
{
Q->front=Q->rear=(QueuePtr)malloc(sizeof(QNode));
if(!Q->front)
{
printf("****** malloc failed ******");
return ERROR;
}
Q->front->next=NULL;
return OK;
}
Status DestoryQueue(LinkQueue *Q)
{
while (Q->front)
{
Q->rear = Q->front->next;
free(Q->front);
Q->front=Q->rear;
}
return OK;
}
/*enqueue*/
Status EnQueue(LinkQueue *Q, QElemType e)
{
QueuePtr p=NULL;
p=(QueuePtr)malloc(sizeof(QNode));
if (!p)
{
printf("****** malloc failed ******");
return ERROR;
}
p->data = e;
p->next = NULL;
Q->rear->next=p;
Q->rear=p;
return OK;
}
// Dequeue
Status DeQueue(LinkQueue *Q, QElemType e)
{
QueuePtr p;
if (Q->front == Q->rear)
return ERROR;
p=Q->front->next;
e=p->data;
printf("\n%d is take out from Queue!\n",e);
Q->front->next= p->next;
if (Q->rear == p)
Q->rear = Q->front;
free(p);
return OK;
}
int main(void)
{
LinkQueue Q1;
int i,n,e;
char ch,ch2;
int mark;
/*if ((InitQueue(&Q1)) == OK)
printf("Init success !\n");
else
printf("****** Fail to init Queue !\n");
*/
InitQueue(&Q1);
printf("Please input value for n: ");
scanf("%d",&n);
for (i=1; i <= n; ++i)
{
printf("input values(e) for number %d:\t", i);
scanf("%d",&e);
if ((EnQueue(&Q1,e)) != OK)
break;
}
printf("###### data fill queue! \n#######");
sleep(1);
/*printf("Do you want to delete Queue ? Y|y/N|n");
scanf("%c",&ch);
if (ch =='Y' | ch=='y')
mark=1;
else
mark=0;
if (mark)
DeQueue(&Q1,e);
mark=0;*/
/*
printf("Do you want to destory Queue ? Y|y/N|n");
scanf("%c",&ch2);
if (ch2 =='Y' | ch2=='y')
mark=1;
else
mark=0;
if (mark)
DestoryQueue(&Q1);
mark=0;
*/
while (n>0)
{
DeQueue(&Q1,e);
n--
}
return 0;
}
- 数据结构.队列(C语言实现)
- 数据结构---队列C语言实现
- 数据结构之队列的实现(c语言)
- C语言实现数据结构中的链队列
- 数据结构:队列(C语言实现)
- 数据结构(C语言)实现循环队列
- 数据结构实现链式队列(C语言)
- 数据结构C语言实现之循环队列
- 数据结构C语言实现之链队列
- 用C语言模块实现队列数据结构
- 数据结构.循环队列(C语言实现)
- [数据结构]C语言队列的实现
- 数据结构:循环队列(C语言实现)
- 数据结构:循环队列(C语言实现)
- 数据结构C语言实现之循环队列
- 数据结构之---C语言实现链式队列
- 数据结构之---C语言实现循环队列
- 数据结构:循环队列(C语言实现)
- UVa 10879 Code Refactoring (因数分解)
- C语言存储类总结
- 数据结构.循环队列(C语言实现)
- hibernate之session实例的创建
- 华为销售服务--面试经验(长沙地区)
- 数据结构.队列(C语言实现)
- java内部类
- 编程之美2:精确表达浮点数
- 每日一题(96) - 线段最多覆盖的点数
- hibernate之SessionFactory
- uva 10723 - Cyborg Genes(LIS)
- YII 框架 第九天(3)页面缓存
- 割点和桥
- Android计时器的三种实现方法