链式队列的定义及基本操作
先定义队列的几个基本操作,再设计一主函数利用队列的操作完成以下功能:
键盘输入的字符可以临时存入键盘的缓冲区中。为了充分利用缓冲区的空间,往往将缓冲区设计成链式循环队列的结构,并为循环队列结构的缓冲区设置一个队首指针和一个队尾指针。
每输入一个字符到缓冲区中,就将尾指针后移,链入缓冲区的循环队列之中;每输出一个字符号,就将队头指针前移,将它从缓冲队列中删除。
假设有两个进程同时存在于一个应用程序中,第一个进程连续在屏幕上显示字符“X”,第二个进程不断检查键盘上是否有输入,若有则读入用户键入的字符,将其保存到键盘缓冲区中。
代码如下:
#include<iostream>
#include<conio.h>
using namespace std;
typedef char ElemType;
#define ERROR 0
#define OK 1
typedef struct QueueNode
{
ElemType data;//数据域
struct QueueNode *next;//指针域
}QueueNode, *QueueStr;
typedef struct
{
QueueStr front;//头指针
QueueStr rear;//尾指针
}LinkQueue;
LinkQueue