📄 public.h
字号:
#ifndef PUBLIC_H
#define PUBLIC_H
#include<stdio.h>
#define MAX 10000
#define MAX_BUFFER 100000
struct node{
int key;
char infor[52];
};
/********* 缓冲区类,用环状数组实现的队列来实现之 **********/
//设置头指针front,尾指针rear
//插入在rear处,删除在front处
class Buffer{
private:
node * buf; //存放元素的数组
int front, rear;
int n; //buffer中当前元素的数目
public:
//constructor
Buffer(){
buf = new node [MAX_BUFFER];
front = 0;
rear = 0;
n = 0;
}
//destructor
~Buffer(){
delete buf;
}
//判断buffer是否为空
bool isEmpty(){
return (n==0);
}
//判断buffer是否满
bool isFull(){
return (n==MAX_BUFFER);
}
//往buffer中插入元素x
bool insert(node x){
if(isFull()==false){//非满
buf[rear] = x;
rear = (rear+1)%MAX_BUFFER;
n++;
return true;
}
else{
printf("%s\n","BUFFER FULL!");
return false;
}
}
//从buffer中读取元素x,并在buffer中删除它
bool read(node & x){
if(isEmpty()==false){//非空
x = buf[front];
front = (front+1)%MAX_BUFFER;
n--;
return true;
}
else{
printf("%s\n","BUFFER EMPTY!");
return false;
}
}
void flush(FILE * outputFile){
//写入输出文件
int temp = front;
for(int i = 0; i < n; i++){
fprintf(outputFile,"%05d %s ", buf[temp % MAX_BUFFER].key,buf[temp%MAX_BUFFER].infor);
temp++;
}
//清零
n = 0;
front = 0;
rear = 0;
}
void list(){
if (isEmpty()){
printf("%s\n","no data!");
return;
}
int temp = front;
for(int i = 0; i < n; i++){
printf("%d %s",buf[temp % MAX_BUFFER].key,buf[temp%MAX_BUFFER].infor);
temp++;
}
printf("\n");
}
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -