【小白成长撸】--循环顺序队列

 1 // 循环顺序队列.cpp : 定义控制台应用程序的入口点。
 2 //适合整数
 3
 4 #include "stdafx.h"
 5 #include<stdio.h>
 6
 7 #define MAXNUM 100
 8 #define true 1
 9 #define false 0
10
11 typedef struct queue_type
12 {
13     int queue[MAXNUM];//队列的最大值为100
14     int front;//头指针
15     int rear;//尾指针
16 }queuetype;
17
18 int enter(queuetype *p, int x);//循环队列的入队操作
19 int outer(queuetype *p);//循环队列的出队操作
20
21 int main()
22 {
23     return 0;
24 }
25
26 int enter(queuetype *p, int x)
27 {
28     if ((p->rear + 1) % MAXNUM == (p->front))//判断循环队列是否已经满了
29     {
30         return(false);
31     }
32     else
33     {
34         p->rear = (p->rear + 1) % MAXNUM;
35         p->queue[p->rear] = x;
36         return(true);
37     }
38 }
39
40 int outer(queuetype *p)
41 {
42     if (p->front == p->rear)//判断循环队列是否为空
43     {
44         return(false);
45     }
46     else
47     {
48         p->front = (p->front + 1) % MAXNUM;
49         return(p->queue[p->front - 1]);
50     }
51 }
时间: 2024-12-19 18:07:21

【小白成长撸】--循环顺序队列的相关文章

【小白成长撸】--顺序栈(C语言版)

1 // 顺序栈.cpp : 定义控制台应用程序的入口点. 2 // 3 4 #include "stdafx.h"//test1.0--栈表仅限Int类型 5 #include <stdio.h> 6 7 #define true 1 8 #define false 0 9 10 typedef struct stack_type 11 { 12 int stack[100];//最大容纳100个元素 13 int top; 14 }stacktype; 15 16 in

数据结构-循环顺序队列的基本操作

//循环顺序队列的基本操作 #include <iostream> #include <string.h> using namespace std; #define MAXLEN 8 #define datatype char #define Status int typedef struct{ datatype s[MAXLEN]; int front; //记录队首的指针 int rear; //记录队尾的指针 }SeqQueue; //初始化 Status InitSeqQu

C++循环顺序队列

顾名思义:采用顺序结构存放的队列称为顺序队列 循环顺序队列可以避免队列的假溢出现象的发生.如下图示,循环队列的几种特殊情况. 学习完顺序循环队列个人感觉应该注意的事项: front.rear只是表示在base[i]这个顺序表中的索引值,而不是内存的绝对地址,这样也才在后面的循环的时候处理起来比较方便 队列循环的关键 front=(front+1)%queueSize; 下面是个人的循环队列操作工程文件: //////////////////////////////////////////////

循环顺序队列

#include<iostream> using namespace std; const int MAXQSIZE = 5; //队列类 template<class T> struct LinkList { T * data;//指向连续的数据存储区域 int front;//头指针 指向第一个元素 int rear;//尾指针 如果队列不为空指向最后元素的下一个位置 }; //构造一个空队列 template<class T> void InitQueue(Lin

数据结构-循环顺序队列&amp;链队列

队列接口实现: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _003_队列 { interface IQueue<T> { int Count { get; } int GetLength(); bool IsEmpty(); void Clear(); void Enqueue(T it

【C++小白成长撸】--矩阵乘法程序

矩阵乘法是大学矩阵课程中,相比矩阵加减法比较困难的部分. 矩阵乘法的原理: 矩阵乘法在代码中实现 得到目标矩阵的一个元素,涉及两个求和符号,一个求和符号一个for循环,两个求和符号两个for循环,再加上是二维数组,再加一个for循环 以下呈现出代码 1 /*程序的版权和版本声明部分: 2 **Copyright(c) 2016,电子科技大学本科生二年级学生 3 **All rights reserved. 4 **文件名:矩阵乘法 5 **程序作用:矩阵乘法 6 **作者:Amoshen 7 *

【C++小白成长撸】--(续)单偶数N阶魔方矩阵

1 /*程序的版权和版本声明部分: 2 **Copyright(c) 2016,电子科技大学本科生 3 **All rights reserved. 4 **文件名:单偶数N阶魔方矩阵 5 **程序作用:单偶数N阶魔方矩阵 6 **作者:Amoshen 7 **完成日期:2016.11.2 8 **版本号:V1.0 9 */ 10 #include<iostream> 11 12 using namespace std; 13 14 #define MAX_SIZE 100 15 16 int

【C++小白成长撸】--(续)双偶数N阶魔阵

原理: 把双偶数N阶魔阵均分为(N/4)^2个4阶魔阵(4*4) 每个魔阵的对角线都标为"-1",其余位置标为"0" 从第一个位置(a[0][0])从左到右,从上到下(例如:a[0][0],a[0][1]--a[0][3],a[1][0])用自然数(从1开始)依次填充,每次填充数加一,遇到-1,跳过,但自然数继续计数 当第三步全部完成后,从最下面一个位置(a[3][3]),从右到左,从下到上,计数从1开始,每次填充数加一,遇到填充了的位置,跳过,但自然数继续计数.

【C++小白成长撸】--N阶幻方(魔阵)矩阵

解决方法:1.第一个元素放在第一行中间一列 2.下一个元素存放在当前元素的上一行.下一列. 3.如果上一行.下一列已经有内容,则下一个元素的存放位置为当前列的下一行. 在找上一行.下一行或者下一列的时候,必须把这个矩阵看成是回绕的. 代码中,为了判断,当前位置是否有元素,我引入与魔方矩阵规模相同的另一个矩阵,如果魔方矩阵一个位置不为空,相应另一个矩阵那个位置为1,否则为0. 1 /*程序的版权和版本声明部分: 2 **Copyright(c) 2016,电子科技大学本科生 3 **All rig