C语言——循环队列和链队列的基本运算
// 循环队列
#include <stdio.h>
#include "SeqQue.h" // 循环队列的基本运算
/*
const int maxsize = 20;
typedef struct cycque
{
int data[maxsize];
int front, rear;
}CycQue;
*/ // 1. 初始化
void InitQueue(CycQue CQ)
{
CQ.front = ;
CQ.rear = ;
} // 2. 判断队空
int EmptyQueue(CycQue CQ)
{
if(CQ.rear == CQ.front)
return ;
else
return ;
} // 3. 入队列
int EnQueue(CycQue CQ, int x)
{
if((CQ.rear + )%maxsize == CQ.front)
{
printf("队列满\n");
return ;
}
else
{
CQ.rear = (CQ.rear + )%maxsize;
CQ.data[CQ.rear] = x;
return ;
} } // 4. 出队列
int OutQueue(CyQue CQ)
{
if(EmptyQueue(CQ))
{
printf("队列空\n");
return ;
}
else
{
CQ.front = (CQ.front + )%maxsize;
return ;
}
} // 5.取队列首元素
int GetHead(CycQue CQ)
{
if(EmptyQueue(CQ))
{
printf("队列为空\n");
return ;
}
else
{
return CQ.data[(CQ.front + )%maxsize];
/*
说明:为了方便操作,规定front指向队列首元素的前一个单元,
rear指向实际的队列尾元素单元。
*/
}
} // 循环队列的基本运算 main()
{ }
链队列
#include <stdio.h>
#include "Lkqueue.h" /*
// 链队列类型定义
typedef struct LinkQueueNode
{
int data;
struct LinkQueueNode *next;
}LkQueNode
typedef struct LkQueue
{
LkQueNode *front, *rear;
}LkQue;
*/ // 1. 队列的初始化
void InitQueue(LkQue *LQ)
{
LkQueNode *temp;
temp = (LkQueNode *)malloc(sizeof(LkQueNode));
LQ->front = temp;
LQ->rear = temp;
(LQ->front)->next = NULL;
} // 2. 判队列空
int EmptyQueue(LkQue LQ)
{
if(LQ.rear == LQ.front)
return ;
else
return ;
} // 3. 入队列
void EnQueue(LkQue *LQ, int x)
{
LkQueNode *temp;
temp = (LkQueNode *)malloc(sizeof(LkQueNode));
temp->data = x;
temp->next = NULL;
(LQ->rear)->next = temp; // 新节点入队列
LQ->rear = temp; // 置新的队列尾节点 } // 4. 出队列
int OutQueue(LkQueue *LQ)
{
LkQueNode *temp;
if(EmptyQueue(LQ))
{
printf("队列为空\n");
return ;
}
else
{
temp = LQ->front->next; // 队列首元素
(LQ->front)->next = temp->next; if(temp->next == NULL)
LQ->rear = LQ->front; // 无首节点时,front和rear都指向头节点
free(temp);
return ;
}
}
C语言——循环队列和链队列的基本运算的更多相关文章
- 【Java】 大话数据结构(7) 循环队列和链队列
本文根据<大话数据结构>一书,实现了Java版的循环队列.链队列. 队列:只允许在一端进行插入操作,而在另一端进行删除操作的线性表. 1.循环队列 队列的顺序储存结构:用数组存储队列,引入 ...
- JAVA该队列中的数组,圆阵队列,链队列
/** * 文件名:QueueText.java * 时间:2014年10月22下午9:05:13 * 笔者:维亚康姆维修 */ package chapter3; /** * 类名:ArrayQue ...
- 【数据结构(C语言版)系列三】 队列
队列的定义 队列是一种先进先出的线性表,它只允许在表的一端进行插入,而在另一端删除元素.这和我们日常生活中的排队是一致的,最早进入队列的元素最早离开.在队列中,允许插入的一端叫做队尾(rear),允许 ...
- 数据结构算法C语言实现(十一)--- 3.4队列的链式表示和实现
一.简介 FIFO. 二.头文件 //3_4_part1.h /** author:zhaoyu email:zhaoyu1995.com@gmail.com date:2016-6-9 note:r ...
- 数据结构Java实现07----队列:顺序队列&顺序循环队列、链式队列、顺序优先队列
一.队列的概念: 队列(简称作队,Queue)也是一种特殊的线性表,队列的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置插入和删除,而队列只允许在其一端进行插入操作在其 ...
- javascript实现数据结构与算法系列:队列 -- 链队列和循环队列实现及示例
1 队列的基本概念 队列(Queue):也是运算受限的线性表.是一种先进先出(First In First Out ,简称FIFO)的线性表.只允许在表的一端进行插入,而在另一端进行删除. 队首(fr ...
- 队列(FIFO)—循环队列、队列的链式存储
1 队列的定义 队列是只允许在一端(队尾)进行插入操作,而在另一端(队头)进行删除操作的线性表. 2 队列的特点 1)先进先出是队列最大的特点,是应用中非常常见的模型,例如排队: 2)队列也属于线性表 ...
- 队列(链式队列)----C语言
链式队列----用链表实现,链式队列就是一个操作受限的单向链表,如果读者了解单向链表的建立过程,那理解链式队列就很容易了,先回顾一下单向链表的建立过程 (不熟悉单向链表的可以先看看另一片随笔,再回来看 ...
- c语言描述的链队列的基本操作
#include<stdio.h> #include<stdlib.h> #define ok 0 #define error 1 //链队列特点在于不仅有链的头指针和尾指针, ...
随机推荐
- XMPPFramework核心类介绍
XMPPFramework结构 在进入下一步之前,先给大家讲讲XMPPFramework的目录结构,以便新手们更容易读懂文章.我们来看看下图: 虽然这里有很多个目录,但是我们在开发中基本只关心Core ...
- POJ 2192
#include <iostream> #include <string> #define MAXN 500 using namespace std; bool dp[MAXN ...
- 【性能测试】:LR插入mysql数据库数据,脚本参数化问题
一,今天准备脚本做mysql数据库的铺地数据,脚本内容不赘述,在批量执行insert语句时候,出现一个问题: // sprintf(chQuery, "insert into table ( ...
- [性能测试]:ISO8583报文解析实例
现在我们有ISO8583报文如下(十六进制表示法): 60 00 03 00 00 60 31 00 31 07 30 02 00 30 20 04 C0 20 C0 98 11 00 00 00 0 ...
- Eclipse 安装spring插件spring tool suite(STS)
安装方法有2种,一种是在线安装,比较方便,但耗时较长,一种是离线安装,步骤复杂一些,但耗时少,下面请看详细步骤. 方法一:在线安装 1:打开eclipse菜单Help>Eclise Ma ...
- Hibernate5.1+Sqlserver2000分页查询
前几天改到一个bug:从MS SQLserver上面同步表结构并且采集数据写入其他库.然后用的核心技术是用的Hibernate. 其中bug出在SQLServer2000版本上.排查下来发现2000版 ...
- 深入分析java web技术内幕目录一览
Web请求过程 如何发起请求:browser,httpclient http解析:chrome ,cache Dns域名解析:域名缓存 cdn:负载,动态加速,回源 Java I/O I/0类库的基本 ...
- Android OpenGL教程-第六课【转】
第六课 纹理映射: 在这一课里,我将教会你如何把纹理映射到立方体的六个面. 激动的时刻来了,加载图片了. 复习一下android加载图片的知识.放一个png到drawable里面. (图片文件名:ne ...
- D的小L
D的小L 描述 一天TC的匡匡找ACM的小L玩三国杀,但是这会小L忙着哩,不想和匡匡玩但又怕匡匡生气,这时小L给匡匡出了个题目想难倒匡匡(小L很D吧),有一个数n(0<n<10),写出1 ...
- 吴恩达《深度学习》第五门课(1)循环序列模型(RNN)
1.1为什么选择序列模型 (1)序列模型广泛应用于语音识别,音乐生成,情感分析,DNA序列分析,机器翻译,视频行为识别,命名实体识别等众多领域. (2)上面那些问题可以看成使用(x,y)作为训练集的监 ...