实验二 栈和队列
一、 实验目的
1.熟悉栈和队列的顺序和链式存储结构
2.掌握栈和队列的基本运算
3.能够利用栈和队列的基本运算完成栈和队列应用的运算
二、 实验内容
2.假设以数组sequ[m]存放循环队列的元素,同时设变量rear和quelen 分别指示循环队列中队尾元素的位置和内含元素的个数。编写实现该循环队列的入队和出队操作的算法。提示:队空的条件:sq->quelen==0;队满的条件:sq->quelen==m。(文件夹:习题10_9)
/*循环队列的结构类型定义.h*/
#define m 5
typedef int datatype;
typedef struct
{ datatype sequ[m];
int rear, quelen;
}qu;
/*循环队列入队出队的主程序文件.cpp*/
#include <stdio.h>
#include<stdlib.h>
#include"循环队列的结构类型定义.h"
#include"置空队.h"
#include"入队.h"
#include"出队.h"
int main()
{ qu *sq;
datatype x, *p;
int key;
/*sq=new qu;*/
sq = (qu*)malloc(sizeof(qu));
setnull(sq);
do
{ /*cout<<"1.Enter Queue 2.Delete Queue -1.Quit:";
cin>>key;
*/
puts("1.Enter Queue 2.Delete Queue -1.Quit:");
scanf("%d",&key);
switch(key)
{ case 1: /*cout<<"Enter the Data:"; cin>>x;*/
puts("Enter the Data:");scanf("%d",&x);
enqueue(sq,x); break;
case 2: p=dequeue(sq);
if(p!=NULL) /*cout<<*p<<endl;*/
printf("%d/n",*p);
break;
case -1: exit(0);
}
}while(1);
return 0;
}
/*该程序输入非数字时将出错*/
/*置空队.h*/
void setnull(qu *sq)
{ sq->rear=m-1;
sq->quelen=0;
}
void enqueue( qu * sq,datatype x)
{
if(sq->quelen==m)
{
printf("队满,入队失败./n");
return;
}
sq->rear=(sq->rear+1)%m;
sq->sequ[sq->rear]=x;
sq->quelen++;
return;
}
datatype* dequeue(qu* sq)
{
datatype *x;
x=(datatype*)malloc(sizeof(datatype));
if(sq->quelen==0)
{
printf("队空,出队失败./n");
return 0;
}
*x=sq->sequ[(sq->rear-sq->quelen+1+m)%m];
sq->quelen--;
return x;
}
分享到:
相关推荐
实验三 栈和队列 3.1实验目的: (1) 熟悉栈的特点(先进后出)及栈的基本操作,如入栈、出栈等,掌握栈的基本操作在栈的顺序存储结构和链式存储结构上的实现; (2) 熟悉队列的特点(先进先出)及队列的基本操作...
栈和队列的基本操作实验报告 一、实验目的 1、熟练掌握栈和队列的基本操作在两种存储结构上的实现。 2、会用栈和队列解决简单的实际问题。 二、实验内容 题目:试写一个算法,判断依次读入的一个以@为结束符的...
通过数据结构知识,运用C语言实现
数据结构栈和队列实验报告,请放心下载
实验报告——栈和队列的应用.docx实验报告——栈和队列的应用.docx实验报告——栈和队列的应用.docx实验报告——栈和队列的应用.docx实验报告——栈和队列的应用.docx实验报告——栈和队列的应用.docx实验报告——栈...
实验4 栈和队列 实验4 栈和队列 实验4 栈和队列 数据结构
2.掌握在两种存储结构上对栈和队列所施加的入栈、出栈、入队和出队的实现。 3.掌握栈和队列的逻辑结构特点、顺序存储结构、链式存储结构、顺序栈和链栈的结构体类型定义、循环队列和链队列的结构体类型定义、栈和...
2数据结构实验报告二(栈和队列及其应用).docx2数据结构实验报告二(栈和队列及其应用).docx2数据结构实验报告二(栈和队列及其应用).docx2数据结构实验报告二(栈和队列及其应用).docx2数据结构实验报告二(栈和队列及其...
2数据结构实验报告二(栈和队列及其应用).pdf2数据结构实验报告二(栈和队列及其应用).pdf2数据结构实验报告二(栈和队列及其应用).pdf2数据结构实验报告二(栈和队列及其应用).pdf2数据结构实验报告二(栈和队列及其应用...
2数据结构 实验报告二(栈和队列及其应用).pdf2数据结构 实验报告二(栈和队列及其应用).pdf2数据结构 实验报告二(栈和队列及其应用).pdf2数据结构 实验报告二(栈和队列及其应用).pdf2数据结构 实验报告二(栈和队列...
数据结构实验报告 《二、栈和队列的运用》
实验题目:栈和队列的应用 二. 实验内容:迷宫问题 三.实验目的:掌握栈和队列的概念及工作原理,运用其原理完成实验题目中的内容。 四.实验要求:为了使学生更好的掌握与理解课堂上老师所讲的概念与原理,实验...
东北大学数据结构课程实验2栈和队列,实验报告,有代码。
栈,队列,循环队列; 数据结构实验报告,循环队列打印杨辉三角
用C实现的栈与队列,可以加载使用。详见博文http://blog.csdn.net/pirateleo/article/details/7574598 共包含5个文件
栈和队列考试题 复习 栈和队列考试题 复习栈和队列考试题 复习
编写程序,建立容量为n(建议n=8)的循环队列,完成以下程序功能。输入字符#,执行一次出队操作,屏幕上显示出队字符;输入字符@,队列中所有字符依次出队并按出队次序在屏幕上显示各字符;输入其它字符,则输入的字符...
实验报告 栈和队列 数据结构C语言源代码 够详细
数据结构_实验三_栈和队列及其应用.pdf数据结构_实验三_栈和队列及其应用.pdf数据结构_实验三_栈和队列及其应用.pdf数据结构_实验三_栈和队列及其应用.pdf数据结构_实验三_栈和队列及其应用.pdf数据结构_实验三_栈和...