队列问题(c)

/       .h      //

#define N  100
typedef char datatype;




//队列问题


struct queue
{
datatype data[N];
int front;//对头
int rear;//队尾
};


typedef struct queue QUEUE;
void initQueue(QUEUE * sq);


int isempyty(QUEUE *sq);


datatype getHead(QUEUE *sq);


void enQUEUE(QUEUE *sq, datatype data);
datatype deQUEUE(QUEUE *sq);


void showQUEUE(QUEUE *sq);


//          .c      //

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <stdlib.h>
#include <string>
#include "stackNode.h"
#define N  100
typedef char datatype;




//队列问题
//struct queue
//{
//
// datatype data[N];
// int front;//对头
// int rear;//队尾
//};


void initQueue(QUEUE * sq)
{


//实现队列初始化
sq->front = sq->rear = 0;
}


int isempyty(QUEUE *sq)
{


if (sq->front == sq->rear)
{
return 1;//位空
}
else
{
return 0;
}
}


datatype getHead(QUEUE *sq)
{
if (sq->front == sq->rear)
{
return 1;
}
return sq->data[sq->front];


}


void enQUEUE(QUEUE *sq, datatype data)
{


if (sq->rear == N)
{
printf("队列已经满了!");
return;
}
else
{
sq->data[sq->rear] = data;//入队
sq->rear++;//往前移动一个
}
}


datatype deQUEUE(QUEUE *sq)
{
if (sq->front == sq->rear)//判断队列是否为空
{
printf("队列为空!");
return -1;
}
else
{
sq->front++;//删除一个元素,向前移动一个
return sq->data[sq->front - 1];//出队
}


}


void showQUEUE(QUEUE *sq)
{


if (sq->front == sq->rear)//判断队列是否为空
{
printf("队列为空!");
return ;
}
else
{
for (int i = sq->front; i < sq->rear; i++)
{
printf("sq data :%c\n", sq->data[i]);
}
}
}




void main()
{
QUEUE q1;
//q1 = NULL;
initQueue(&q1);
char *str = "abcdefg";
char *p = str;
while (*p != '\0')
{
enQUEUE(&q1, *p); //字符入队
showQUEUE(&q1);//显示队列所有的元素
p++;
}
printf("对头的数据:%c\n\n\n", getHead(&q1));
while (!isempyty(&q1))
{
printf("出兑的数据:%c\n", deQUEUE(&q1));
}
system("pause");
}








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值