软件技术基础 实验四:栈和队列的操作实现

2019-04-22 22:30

电子科技大学 电子工程 学院

标 准 实 验 报 告

(实验)课程名称 软件技术基础

学生姓名:

学 号:

指导教师:

一、实验名称

实验四:栈和队列的操作实现

二、实验目的

理解栈和队列的基本概念,栈和队列操作的基本方法以及其编程实现。通过本实验的两个项目的编程、调试和运行结果的比较,分析栈和队列的差别。

三、实验内容

1、 设计一个容量为4的循环队列,编程实现如下操作,并显示各步骤操作后队列的内容:

A、队列初始化为空;

B、将1、2、3三个数据依次做入队操作; C、做两次出队操作(1、2出队); D、将4、5、6三个数据依次做入队操作; E、将数据7做入队操作;

2、设计一个容量为4的顺序栈,编程实现如下操作,并显示各步骤操作后栈的内容:

A、栈初始化为空;

B、将1、2、3三个数据依次做入栈操作; C、做两次出栈操作;

D、将4、5、6三个数据依次做入栈操作; E、将数据7做入栈操作;

四、实验程序

1.循环队列程序

#include #include #define true 1 #define false 0 #define maxnum 5

typedef struct {

int data[maxnum]; int front; int rear; }queuetype;

void main() {

void initiatequeue(queuetype *q); int enter(queuetype *q,int x); int deletequeue(queuetype *q); void printqueue(queuetype *q); queuetype *q;

q=(queuetype*)malloc(sizeof(queuetype)); initiatequeue(q); enter(q,1); enter(q,2); enter(q,3);

printf(\入队操作后:\\n\

printqueue(q);

printf(\两次出队操作后:\\n\

deletequeue(q);

deletequeue(q); printqueue(q);

printf(\三次入队操作后:\\n\ enter(q,4); enter(q,5); enter(q,6); printqueue(q);

printf(\第四次入队操作后:\\n\ enter(q,7);

}

void initiatequeue(queuetype *q)//初始化队列 { }

int enter(queuetype *q,int x)//入队操作 {

if(((q->rear)+1)%maxnum==q->front) {printf(\队列已满,不能进行入队操作\\n\return(false); }

q->front=q->rear=0;

else }

int deletequeue(queuetype *q)//出队操作 {

if(q->rear==q->front) {printf(\队列已空\\n\return(false); } else {

q->rear=(q->rear+1)%maxnum;

q->data[q->rear]=x; printf(\成功插入%d\\n\return(true); }

{q->front=(q->front+1)%maxnum;

}

printf(\成功删除\\n\return(q->data[q->front]); }

void printqueue(queuetype *q)//输出队列 { int l; }

if(q->front==q->rear) {printf(\队列已空\ return; } l=q->front; printf(\结果是\\n\while(1)

{ l=(++l)%maxnum; printf(\ }

if(l==q->rear) break;

2.顺序栈程序

#include #include #define true 1 #define false 0 #define maxnum 4

typedef struct {


软件技术基础 实验四:栈和队列的操作实现.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:主变压器的选择

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: