数据结构的题目 大家帮帮做下 急 急````

来源:百度知道 编辑:UC知道 时间:2024/05/08 08:56:27
要求:
队列上的各种操作在顺序存储上的实现

队列在顺序存储上的操作包括:
(1) 初始化空队列 INITQUEUE(Q)
(2) 判队空函数 EMPTY(Q)
(3) 入队列操作 ADDQ(Q,x)
(4) 出队列操作 DELQ(Q)
(5) 取队头元素操作 GETFRONT(Q)
(6) 队列置空操作CLEAR(Q)
(7) 求队列中元素个数的操作 CURRENT_SIZE(Q)

2。程序结构采用我们上机实验一直提倡的格式,即采用三个文件的方式,
其中,
头文件------------做宏定义、结构体声明、自定义的函数头引用
功能函数文件------实现各种操作的函数
主函数文件--------主要实现对各种功能函数的调用
注:
主函数一般包括以下几部分内容:
主函数中主要要实现以下功能:
A。定义一些需要用到的变量,及对变量进行初始化;
B。建立一个初始数据结构,如线性表、栈、队列,并赋一些初值,如abcdef等;
C。输出初始数据结构的初始值;
D。开始调用该数据结构上的各种函数,调用函数时,有输入参数的,应该给输入参数赋值之后才能调用,调用函数之后,根据函数的返回值做进一步处理,比如输出返回值等,每次调用函数之后都要求重新输出数据结构的值。
E。在主函数中要求能循环选择各种操作!
<谁做下 真的很急``给出答案 就算那书上有也帮我 找下 发上来 急呀>

已经帮你写出了所有要用到的函数,其他的操作你自己完成吧
#include<stdio.h>
#include<stdlib.h>
#define maxsize 100
typedef char Elemtype;
typedef struct
{
Elemtype *base;
int rear;//队尾指针
int front;//队头指针
}QUEUE;
void INITQUEUE(QUEUE &Q)//初始化空队列
{
Q.base=(Elemtype*)malloc(maxsize*sizeof(Elemtype));
if(!Q.base)return;
Q.rear=Q.front=0;
}
bool EMPTY(QUEUE Q)//判队空函数
{
if(Q.rear==Q.front)return true;
return false;
}
void ADDQ(QUEUE &Q,Elemtype x)//入队列操作
{
if((Q.rear+1)%maxsize==Q.front)
{
printf("QUEUE Overflow!");
return;
}
Q.base[Q.rear]=x;
Q.rear=(Q.rear+1)%maxsize;
}
void DELQ(QUEUE &Q)//出队列操作
{
if(Q.rear==Q.front)
{
printf("Empty QUEUE!");
return;
}
Q.front=(Q.front+1)%maxsize;
}
Elemtype GETFRONT(QUEUE Q)//取队头元素操作
{
return Q.base[Q.front];