顺序栈与链队列C语言实验报告,实验3:栈和队列的基本操作实现及其应用——顺序队列和链队列...

本文详细介绍了如何实现栈(包括顺序栈和链栈)和队列(顺序队列与链队列)的基本操作,包括压栈、出栈、入队和出队。通过二进制转换和模拟排队系统展示了它们在实际问题中的应用。实验中还涉及了数据类型定义、算法设计和代码实现。
摘要由CSDN通过智能技术生成

实验3:栈和队列的基本操作实现及其应用

一、实验目的

1、   熟练掌栈和队列的结构特点,掌握栈和队列的顺序存储和链式存储结构和实现。

2、      学会使用栈和队列解决实际问题。

二、实验内容

1、自己确定结点的具体数据类型和问题规模:

分别建立一个顺序栈和链栈,实现栈的压栈和出栈操作。

分别建立一个顺序队列和链队列,实现队列的入队和出队操作。

2、设计算法并写出代码,实现一个十将二进制转换成2进制数。

3、选做题(*)

设计一个模拟饭堂排队打饭管理软件,实现“先来先打饭”的排号叫号管理。

三、实验步骤

1、依据实验内容分别说明实验程序中用到的数据类型的定义;

2、相关操作的算法表达;

3、完整程序;

4、总结、运行结果和分析。

5、总体收获和不足,疑问等。

四、实验要求

1、   按照数据结构实验任务书,提前做好实验预习与准备工作。

2、   加“*”为选做题。做好可加分。

3、   严格按照数据结构实验报告模板和规范,及时完成实验报告。

4、   在个人主页上发文章提交作业。

5、   实验课会抽查3-5人,希望你可以被查到!

顺序队列和链队列

1、顺序队列

头文件:

#include

using namespace std;

Cirqueue类:

class Cirqueue

{

private:

int data[Size];

int front,rear;

public:

Cirqueue(){front = rear = Size-1;}

~Cirqueue(){}

void Enqueue(int a[],int n);

void Dequeue();

};

入队函数:

void Cirqueue::Enqueue(int a[],int n)

{

for(int i=0;i

{

rear = (rear+1)%Size;

data[rear] = a[i];

};

}

出队函数:

void Cirqueue::Dequeue()

{

while(front!=rear)

{

front = (front+1)%Size;

cout<

}

}

主函数:

void main()

{

Cirqueue a;

int number[8] = {0,1,2,3,4,5,6,7};

a.Enqueue(number,8);

a.Dequeue();

}

2、链队列

头文件:

#include

using namespace std;

Node结构体:

struct Node

{

int data;

Node * next;

};static Node *front,*rear;

入队函数:

void Enqueue(int a[],int n)

{

Node * s = NULL;

s = new Node;

front = rear=s;

for(int i=0;i

{

s = new Node;

s->data = a[i];

s->next = NULL;

rear->next = s;

rear = s;

};

}

出队函数:

void Dequeue()

{

while(front->next != NULL)

{

Node * p = front->next;

cout<data<

front->next = p->next;

delete p;

}

}

主函数:

void main()

{

int number[8] = {0,1,2,3,4,5,6,7};

Enqueue(number,8);

Dequeue();

}3、实验结果(以上两个结果相同)

cfd33dca7f9896914caeecaba5a04434.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值