c语言顺序队函数调用,顺序队的基本操作复习过程.doc

这篇实验报告详细介绍了如何使用C++实现数据结构中的顺序队列,包括建立、输出、判断队空、获取队长、取队头、入队、出队和清空队列等基本操作。通过循环队列的概念,加深了对队列结构的理解,并锻炼了编程能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上机实验报告

学 院: 计算机与信息技术学院

专 业: 计算机科学与技术(师范)

课程名称: 数据结构

实验题目: 顺序队的基本操作

班级序号: 师范1班

学 号: 201421012731

学生姓名: 邓雪

指导教师: 杨红颖

完成时间: 2015年12月25号

实验目的:

1.熟悉掌握队的定义、结构及性质;?

2. 熟练掌握循环队列的操作及应用,掌握循环队列的入队和出队等基本操作。?

3. 加深对队列结构的理解,逐步培养解决实际问题的编程能力

二、实验环境:

Windows 8.1

Microsoft Visual c++ 6.0

实验内容及要求:

掌握队列的概念及性质,并建立顺序队,实现如下功能:

1.建立一个顺序队

2.输出队

3.求队长

4.判队空

5.取队头

6.入队

7.出队

8. 清空栈

四、概要设计:

1、通过循环,由键盘输入一串数据。创建并初始化一个顺序队。

2、编写实现相关功能函数,完成子函数模块如下。

调用子函数,实现菜单调用功能,完成顺序表的相关操作。

main

main

建队

求队长

出队

取队顶

入队

清空队

判队空

五、代码

#include

#include

#define maxsize 1024

typedef int datatype;

//定义结构体

typedef struct

{

datatype data[maxsize];

int front,rear;

}sequeue;

sequeue *sq;

//建立顺序队

sequeue *SET()

{

sequeue *sq;

datatype x;

sq=(sequeue *)malloc(sizeof(sequeue));

sq->front=maxsize-1;

sq->rear=maxsize-1;

printf("请输入要存入的结点值(以0结尾)\n");

scanf("%d",&x);

while(x!=0)

{

sq->rear=(sq->rear+1)%maxsize;

sq->data[sq->rear]=x;

scanf("%d",&x);

}

printf("顺序队输入成功\n\n");

return sq;

}

//判队空

int EMPTY(sequeue *sq)

{

if(sq->rear==sq->front)

return 1;

else

return 0;}

//输出

void PRINT(sequeue *sq)

{

int i;

if(EMPTY(sq))

printf("sequeue is empty\n");

else

{

i=(sq->front+1)%maxsize;

while(i<=sq->rear)

{

printf("%d ",sq->data[i]);

i=(i+1)%maxsize;

}

}

}

//队长度

int LENGTH(sequeue *sq)

{

int count=0,i;

if(EMPTY(sq))

return count;

else

{

i=(sq->front+1)%maxsize;

while(i<=sq->rear)

{

count++;

i=(i+1)%maxsize;

}

return count;

}

}

// 取队头

datatype FRONT(sequeue *sq)

{

datatype x;

if(EMPTY(sq))

{

printf("sequeue is empty\n");

return NULL;

}

else

{

x=sq->data[(sq->front+1)%maxsize];

return x;

}

}

//入队

void ENQUEUE(sequeue *sq)

{

datatype x;

printf("请输入要插入的结点值\n");

scanf("%d",&x);

if(sq->front==(sq->rear+1)%maxsize)

{

printf("sequeue is full\n");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值