实例213 循环缓冲区问题 - C源码程序 - 谷速源码
下载频道> 资源分类> 编程语言> C源码> 实例213 循环缓冲区问题

标题:实例213 循环缓冲区问题
分享到:

所属分类: C源码 资源类型:程序源码 文件大小: 2.17 KB 上传时间: 2017-07-15 22:42:19 下载次数: 9 资源积分:1分 提 供 者: admin 实例213 循环缓冲区问题
内容:
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <stdlib.h>
#define Maxsize 30
#define TRUE 1
#define FALSE 0
char queue[Maxsize];
int front, rear;
 
void init() /*队首队尾指针初始化*/
{
front = rear =  - 1;
}
 
int enqueue(char x) /*元素入队列*/
{
if (front ==  - 1 && (rear + 1) == Maxsize)
/*只有元素入队没有元素出队判断是否满足队满条件*/
{
printf("overflow!\n");
return 0;
}
else if ((rear + 1) % Maxsize == front) /*判断是否队满*/
{
printf("overflow!\n");
return 0;
}
else
{
rear = (rear + 1) % Maxsize; /*rear指向下一位置*/
queue[rear] = x; /*元素入队*/
return 1;
}
}
 
void dequeue() /*元素出队列*/
{
if (front == rear)
/*判断队列是否为空*/
printf("NULL\n");
else
front = (front + 1) % Maxsize;
/*队首指针指向下一个位置*/
}
 
char gethead() /*取队首元素*/
{
if (front == rear)
/*判断队列是否为空*/
printf("NULL\n");
else
return (queue[(front + 1) % Maxsize]);
/*取出队首元素*/
}
 
void main()
{
char ch1, ch2;
init(); /*队列初始化*/
for (;;)
{
for (;;)
{
printf("A");
if (kbhit())
{
ch1 = bdos(7, 0, 0); /*通过dos命令读入一个字符*/
if (!enqueue(ch1))
{
printf("IS FULL\n");
break;
}
}
if (ch1 == ';' || ch1 == ',')
/*判断输入字符是否是分号或逗号*/
break;
}
while (front != rear)
/*判断队列是否为空*/
{
ch2 = gethead(); /*取队首元素*/
dequeue(); /*元素出队列*/
putchar(ch2); /*输出该元素*/
}
if (ch1 == ';')
/*判断输入的是否是分号*/
break;
/*跳出循环*/
else
ch1 = '';
}
}
 

文件列表(点击上边下载按钮,如果是垃圾文件请在下面评价差评或者投诉):

实例213 循环缓冲区问题
实例213 循环缓冲区问题\www.gusucode.com
实例213 循环缓冲区问题\文件说明.txt
实例213 循环缓冲区问题\www.gusucode.com.txt
实例213 循环缓冲区问题\www.gusucode.com\213.C
实例213 循环缓冲区问题\【谷速代码】-免费源码.url

关键词: 缓冲区 实例 问题

相关推荐

Top_arrow
回到顶部
联系方式| 版权声明| 招聘信息| 广告服务| 银行汇款| 法律顾问| 兼职技术| 付款方式| 关于我们|
网站客服网站客服 程序员兼职招聘 程序员兼职招聘
沪ICP备19040327号-3
公安备案号:沪公网安备 31011802003874号
库纳格流体控制系统(上海)有限公司 版权所有
Copyright © 1999-2014, GUSUCODE.COM, All Rights Reserved