内容发布更新时间 : 2024/11/15 19:43:04星期一 下面是文章的全部内容请认真阅读。
WORD格式可编辑 }
void move(char x,char y) /* 定义move函数 */ {
printf(\ }
四、实验报告要求 1、撰写实验报告;
2、对实验中出现的问题和结果进行总结。
专业知识分享
WORD格式可编辑 实验四 队列的实现和应用
一、实验目的
1、掌握队列的建立方法;
2、掌握队列的基本操作,如出队、入队、判断队空等; 3、队列的应用。 二、实验内容
1、顺序队列的初始化 2、判断队列是否为空 3、顺序队列出队 4、顺序队列入队
5、队列的应用--回文判断 三、实验提示
1、//队列的基本操作,按提示将函数补充完整 #include
typedef struct{ int front, rear;
int data1[STACK_MAX]; } Queue;
void initQueue (Queue *q) /*初始化队列*/ {
q->front=q->rear=0; }
int EmptyQueue(Queue *q)/*判断队列空*/ {
if(q->front==q->rear)
return 1; //1代表空 else
return 0; //0代表非空 }
int DeQueue(Queue *q) /*出队列*/ {
if(q->rear==q->front) //判断需要出队时队列是否为空 {
printf(\当前队列已经空了。\ exit(0); } else {
专业知识分享
WORD格式可编辑 return q->data1[q->front++]; //将队头原素出列然后队头指针加一 } }
void InQueue(Queue *q,int data) /*入队列*/ {
if(q->rear==STACK_MAX) //判断需要入队时队列是否已满 {
printf(\当前队列空间已满。\ exit(0); } else {
q->data1[q->rear]=data; //入队 q->rear++; } }
int main() {
Queue q;
initQueue(&q);
InQueue(&q,1); InQueue(&q,2); InQueue(&q,3);
printf(\ printf(\ printf(\ }
2、//判断给定的字符序列是否是回文(提示:将一半字符入栈) #include
int data[STACK_MAX]; } stack;
专业知识分享
WORD格式可编辑 typedef struct{ int front, rear;
int data1[STACK_MAX]; } Queue;
void init(stack *st) /*初始化顺序栈*/ {
st->top=0; }
int Empty(stack *st)/*判断栈空*/ {
if(st->top==0) return 1; else
return 0; } }
int pop(stack *st) /*出栈*/ {
if(st->top==0) {
printf(\栈已空!\ exit(0); } else {
char c;
c=st->data[--st->top]; return (int)c; } }
void push(stack *st,int data) /*入栈*/ {
if(st->top==STACK_MAX-1) {
printf(\栈已空!\ exit(0); } else {
st->data[st->top++]=data; } }
void initQueue (Queue *q) /*初始化队列*/ {
专业知识分享