数据结构中循环队列的实现

#include

#include

#include

#include

#define MAXSIZE 10

typedef struct

{

int num;//数据成员// int *base;//基地址// int front; int rear; int s;

}SeQueue;

int InitQueue(SeQueue &Q)//构造空列表// {

} Q.base=(int*)malloc(MAXSIZE*sizeof(int)); if(!Q.base) exit (1); Q.front=0; Q.rear=0; return 1;

int QueueEmpty(SeQueue Q)//判队空// {

if(Q.rear==Q.front)

return 1;

else return 0;

}

void EnQueue(SeQueue &Q,int e)//入队// {

if(Q.front==(Q.rear+1)%MAXSIZE) cout

}

int DeQueue(SeQueue &Q)//出队//

{

int e; if(Q.front=Q.rear) return 0; Q.front=Q.front+1;

} if(Q.front==Q.num+1) Q.front=1; e=Q.base[Q.front-1]; if(Q.front==Q.rear) Q.s=0; return e;

void print_SeQueue(SeQueue &Q)

{

int i; cout

}

int main()

{

int i;

SeQueue S; i=InitQueue(S);

cout

EnQueue(S,2);

EnQueue(S,3);

EnQueue(S,4);

EnQueue(S,5);

print_SeQueue(S);

cout

} cout

#include

#include

#include

#include

#define MAXSIZE 10

typedef struct

{

int num;//数据成员// int *base;//基地址// int front; int rear; int s;

}SeQueue;

int InitQueue(SeQueue &Q)//构造空列表// {

} Q.base=(int*)malloc(MAXSIZE*sizeof(int)); if(!Q.base) exit (1); Q.front=0; Q.rear=0; return 1;

int QueueEmpty(SeQueue Q)//判队空// {

if(Q.rear==Q.front)

return 1;

else return 0;

}

void EnQueue(SeQueue &Q,int e)//入队// {

if(Q.front==(Q.rear+1)%MAXSIZE) cout

}

int DeQueue(SeQueue &Q)//出队//

{

int e; if(Q.front=Q.rear) return 0; Q.front=Q.front+1;

} if(Q.front==Q.num+1) Q.front=1; e=Q.base[Q.front-1]; if(Q.front==Q.rear) Q.s=0; return e;

void print_SeQueue(SeQueue &Q)

{

int i; cout

}

int main()

{

int i;

SeQueue S; i=InitQueue(S);

cout

EnQueue(S,2);

EnQueue(S,3);

EnQueue(S,4);

EnQueue(S,5);

print_SeQueue(S);

cout

} cout


相关内容

  • 栈和队列实验报告
  • 栈 的 顺 序 表 示 和 实 现 一.实验目的 1. 了解栈和队列的特性. 2. 掌握栈的顺序表示和实现. 3. 掌握栈的链式表示和实现. 4. 掌握队列的顺序表示和实现. 5. 掌握队列的链式表示和实现. 6. 掌握栈和队列在实际问题中的应用. 二.实验要求 1. 认真阅读和掌握本实验的程序. ...

  • 数据结构与算法面试总结
  • 一. 算法的基本概念 计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法. 1. 算法的基本特征:可行性,确定性,有穷性,拥有足够的情报. 2. 算法的基本要素:算法中对数据的运算和操作.算法的控制结构. 3. 算法设计的基本方法:列举法.归纳法.递推.递归.减半递推技术.回溯法. 4. ...

  • 实验报告--栈和队列的应用
  • 实验5 栈和队列的应用 目的和要求: (1)熟练栈和队列的基本操作: (2)能够利用栈与队列进行简单的应用. 一.题目 题目1.利用顺序栈和队列,实现一个栈和一个队列,并利用其判断一个字符 串是否是回文.所谓回文,是指从前向后顺读和从后向前倒读都一样的字符串. 例如,a+b&b+a等等. 题 ...

  • 第1章数据结构与算法笔试题考点分析
  • 1算法 考试的内容: 1.1 算法的基本概念 1.算法的概念(必记) : 是指解题方案的准确而完整的描述. 分析:要用计算机实现某一任务时,先应设计出一整套解决问题的指导方案,然后具体实现.整套的指导方案称之为算法,而具体的实现称之为程序.并且在设计指导方案时,可不用过多考虑到实现程序的具体细节(即 ...

  • 数据结构面试题(含答案)
  • 1. 栈和队列的共同特点是(只允许在端点处插入和删除元素) 4. 栈通常采用的两种存储结构是(线性存储结构和链表存储结构) 5. 下列关于栈的叙述正确的是(D ) A. 栈是非线性结构B. 栈是一种树状结构C. 栈具有先进先出的特征D. 栈有后进先出的特征 6. 链表不具有的特点是(B )A. 不必 ...

  • 数据结构笔试面试的总结
  • 堆和栈的区别: 一.堆栈空间分配区别: 1.栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈: 2.堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS 回收,分配方式倒是类似于链表. 二.堆栈缓存方式区别: 1.栈 ...

  • [数据结构]教学大纲
  • <数据结构>教学大纲 Data Structure 课程编号:J6110G0003 课程性质:学科基础课程 适用专业:计算机科学与技术.网络工程.数字媒体技术 先行课:计算机科学导论.离散数学.高级语言程序设计: 后续课:无 . 学分数:5 主讲教师:任燕.王命延.冯豫华.周石林.王玮立 ...

  • 数据结构银行排队系统实验报告
  • Assignment 1:ADT Applications Task 2 133490*** 实验过程: 在这个实验程序中,我认为,难点在于如何运用队列储存顾客等候情况.银行窗口如何设置实现显示当前顾客序号以及数据的统计和打印. 题目描述中,有两个模拟版本,分别是单队列与多队列.由于个人能力的原因, ...

  • 13131116钱剑滨_队列和栈判断回文
  • 13软工转本1 钱剑滨 实验报告 利用队列和栈判断回文实验报告 信息工程 系 13软工转本1 日期 2016年03月20日 姓名 钱剑滨 学号 13131116 电话 [1**********] 一. 实验内容 编写关于栈和队列操作的C 语言程序,要求能判断输入字符串是否为回文(回文:正序和逆序一样 ...

  • 分枝限界法_实验报告
  • 一.课题名称 用分枝限界法求解单源最短路径问题 二.课题内容和要求 设计要求:学习算法设计中分枝限界法的思想,设计算法解决数据结构中求解单源最短路径问题,编程实现: (1)给出指定源点的单源最短路径: (2)说明算法的时间复杂度. 三.需求分析 1.实现极小堆的创建,用来存储活结点表. 2.实现循环 ...