文档介绍:佛山科学技术学院
实验报告
课程名称数据结构
实验项目实现队列和栈的各种算法及操作
专业班级 10网络工程2 姓名张珂卿学号 2010394212
指导教师成绩日期 2011年11月9日
一、目的和要求
1. 理解队列和栈的顺序存储结构和链式存储结构。通过本实验,熟悉队列、栈的结构特点;
2. 熟悉队列、栈结构上的操作与算法的实现。
 
二、实验内容
1. 队列的基本操作和应用;
2. 栈的基本操作和应用。
 
三、仪器、设备和材料
1. 适合实验要求的计算机系统;
2. C语言编程平台。
 
四、实验原理与实验代码
队列与栈是一种操作受限制的线性表,在了解线性表的基本原理的基础上,理解与完成此项实验。
#include <>
#include <>
#include <>
#define MAXSIZE 50
typedef struct QNode{
char data; //数组元素的存储结构
}QNode,*QLink;
typedef struct Queue{
QNode* front;
QNode* rear;
int size;
}*QueueArray;
/****************************
初始化队列数组
分配存储空间
初始化队头与队尾
****************************/
int InitQueue(QueueArray queue)
{
QLink ql;
printf("\n初始化队列:");
ql= (QNode*)malloc(MAXSIZE*sizeof(QNode)); //分配存储空间
if(!ql)
{
printf("MEMERY ERROR!");
return 0;
}
queue->front = queue->rear = ql; //初始化队头指针与队尾指针
queue->size = 0;
return 1;
}
/*********************************
入队操作
队满条件:queue->size+1 == MAXSIZE
*********************************/
int EnQueue(QueueArray queue)
{
if((queue->size+1)>MAXSIZE) //是否队满
{
printf("已经超出了预设最大队列长度%d!",MAXSIZE);
return 0;
}
fflush(stdin); //清理标准输入流
printf("请输入入队元素:");
scanf("%c",&queue->rear->data);
queue->rear = (queue->rear)++; //队尾元素移动
queue->size++; //队长度增加
return 1;
}
/************************