数据结构实验队列 附程序

发布 2019-07-09 03:37:15 阅读 5270

实验三队列。

一、实验目的。

1.了解队列的特性。

2.掌握队列的顺序表示和实现。

3.掌握队列的链式表示和实现。

二、实验内容。

实验3. 3队列的顺序表示和实现。

编写一个程序实现顺序队列的各种基本运算(采用循环队列),并在此基础上设计一个主程序,完成如下功能:

(1)初始化队列。

(2)建立顺序队列。

(3)入队。

(4)出队。

(5)判断队列是否为空。

(6)取队头元素。

(7)遍历队列。

实验3.4队列的链式表示和实现。

编写一个程序实现链队列的各种基本运算,并在此基础上设计一个主程序,完成如下功能:

(1)初始化并建立链队列。

(2)入链队列。

(3)出链队列。

(4)遍历链队列。

#include<>

#include<>

#define maxqsize 100

typedef struct

int *base;

int front;

int rear;

sqqueue;

int initqueue(sqqueue &q)

if(!return 0;

//初始化顺序队列。

int queuelength(sqqueue q)

int i;

i=(printf("队列长度%5d",i);

if(i)printf(" 队列非空");

elseprintf(" 队列为空");

return 0;

//判断队列是否为空。

int enqueue(sqqueue &q,int e)

if(( 0;

return 0;

//将元素e入队。

int dequeue(sqqueue &q,int e)

if( 0;

e=printf("%5d",e);

return 0;

// 删除元素e并返回其值。

int gethead(sqqueue &q,int e)

if(!(0;

e=printf("返回队头元素%5d",e);

return 0;

//返回队头元素e

void printqueue(sqqueue &q)

int k;

printf("顺序队列中的元素:");

for(k=

printf("%5d",printf("");

//遍历顺序队列。

void main()

int e,i,n;

sqqueue q;

initqueue(q);

printf("1—元素入队;2—元素出队;3—返回队头元素;4—队列空否0—结束运行");

printf("");printf("");printf("");

printf("");printf("");

printf("选择。

scanf("%d",&n);

printf("");printf("");

while(n!=0)

printf("结束运行。再见!");

链式队列。#include<>

#include<>

typedef struct qnode

int data;

struct qnode *next;

qnode,*queueptr;

typedef struct

queueptr front;//队头指针。

queueptr rear;//队尾指针。

linkqueue;

int initqueue(linkqueue &q)

if(!>next=null;

return 0;

//初始化链式队列。

int enqueue(linkqueue &q,int e)

queueptr p;

p=(queueptr)malloc(sizeof(qnode));

if(!p)exit(0);

p->data=e;p->next=null;

>next=p;

return 0;

//在队尾插入元素e

int dequeue(linkqueue &q,int e)

queueptr p;

if( 0;

p=>next;

e=p->data;

>next=p->next;

if(free(p);

return 0;

//删除队头元素e

int printqueue(linkqueue &q)

queueptr p;

printf("链式队列中的元素 ")

if(>next!=null)

elseprintf("队列为空");

printf("");

return 0;

//遍历链式队列。

void main()

linkqueue q;

int e,m;

printf("");printf("");printf("");printf("");

printf("1——插入元素;2——删除元素;0——结束运行");

printf("");printf("");printf("");

initqueue(q);

printf("");printf("");

printf("选择。

scanf("%d",&m);

printf("");printf("");

while(m!=0)

switch(m)

case 1:printf("插入元素:")scanf("%d",&e);enqueue(q,e);printqueue(q);printf("");printf("");break;

case 2:dequeue(q,e);printqueue(q);printf("");printf("");break;

printf("选择。

scanf("%d",&m);

printf("");printf("");

printf("结束运行。再见!");

数据结构实验数组

crosslist ma int z 主函数 void main creatmatrix ma out m ma main 十字链表的输出 void out m crosslist m printf printf 打回车键,返回。ch getchar void creatmatrix crossli...

数据结构实验六图

1 掌握图的邻接矩阵和邻接表表示。2 掌握图的深度优先和广度优先搜索方法 3 理解图的应用方法。1 阅读并运行下面程序,根据输入写出运行结果。include define n 20 define true 1 define false 0 int visited n typedef struct 队...

《数据结构练习题》栈和队列

栈和队列。1 简述栈和线性表的区别。2 简述栈和队列这两种数据结构的相同点和不同点。3 如果进栈的元素序列为a,b,c,d,则可能得到的出栈序列有多少种?写出全部的可能序列。4 如果进栈的元素序列为1,2,3,4,5,6,能否得到4,3,5,6,1,2和1,3,5,4,2,6的出栈序列?并说明为什么...

数据结构实验一顺序表的实现

班级学号姓名分数 一 实验目的 1.熟悉线性表的基本运算在两种存储结构 顺序结构和链式结构 上的实现 2.以线性表的各种操作的实现为重点 3.通过本次学习帮助学生加深c语言的使用,掌握算法分析方法并对已经设计出的算法进行分析,给出相应的结果。二 实验要求 编写实验程序,上机运行本程序,保存程序的运行...

数据结构实验一顺序表问题及实验报告Copy

实验一顺序表问题。实验报告 顺序表的查找 插入与删除。设计算法,实现线性结构上的顺序表的产生以及元素的查找 插入与删除。具体实现要求 1.从键盘输入10个整数,产生顺序表,并输出结点值。调试数据 9 8 7 6 5 4 3 2 1 2.从键盘输入1个整数,在顺序表中查找该结点。若找到,输出结点的位置...

数据结构,二维指针和数组 还有数据结构

自己建立头文件格式 include 指针 指针变量 是用来存放变量的存储地址的。p null int a 3 例如 p a 结论 p a p 3 指针变量定义的格式 类型名 指针名。最好采用int p 取值符号 后面加 地址 表示取这个地址里的值。地址符号 后面加 变量 表示取这个变量的地址。voi...

数据结构实验 二叉树的操作

实验题目 二叉树的操作 实验者信息 班级 13007102,姓名庞文正,学号 1300710226 实验完成的时间 3 00 一 实验目的。1,掌握二叉树链表的结构和二叉树的建立过程。2,掌握队列的先进先出的运算原则在解决实际问题中的应用。3,进一步掌握指针变量 指针数组 动态变量的含义。4,掌握递...

数据结构 习题集

基础篇。习题1 一 选择题。1 计算机算法必须具备输入 输出 b 等5个特性。a 可行性 可移植性和可扩展性b 可行性 确定性和有穷性。c 确定性 有穷性和稳定性d 易读性 安全性和稳定性。2 在数据结构中,从逻辑上可以把数据结构分为 d a 动态结构和静态结构b 紧凑结构和非紧凑结构。c 内容结构...