实验三队列。
一、实验目的。
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 内容结构...