c语言循环队列入列算法,C语言——循环队列和链队列的基本运算

// 循环队列

#include

#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

#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 ;

}

}

【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 #include #define ok 0 #define error 1 //链队列特点在于不仅有链的头指针和尾指针, ...

随机推荐

javaURL中文乱码的问题

中文乱码在java中URLEncoder.encode方法要调用两次解决   一.场景: 1.我在客户端要通过get方式调用服务器端的url,将中文参数做utf-8编码,需要在js中两次的进行编码, ...

C++动态内存分配

C++动态内存分配1.堆内存分配 :C/C++定义了4个内存区间:代码区,全局变量与静态变量区,局部变量区即栈区,动态存储区,即堆(heap)区或自由存储区(free store). 堆的概念:通常定 ...

解决:HotSeat短信图标提醒有误

[操作步骤]正常收发短信.彩信. [测试结果]所有短信均已阅读,但在HOME界面的短信图标仍提示有一条短信未读.重启后仍存在. 经过分析,导致该情况的主要原因为当彩信已读的时候,launcher中进行 ...

eclipse bookmark的使用

为什么要使用bookmark 写代码一般不是从上往下写,经常在几个模块之间变换的写,你可能使用搜索功能ctrl+f,ctrl+c,这样查找位置将会变的非常痛苦. 因为重要的位置一般就那么几个,如定义部 ...

解决iphone safari上的圆角问题

-webkit-appearance : none ; /*解决iphone safari上的圆角问题*/

【HDOJ】4455 Substrings

5000ms的时限,还挺长的.算法是DP.思路是找到ans[1..n]的结果,然后Query就容易做了.问题是怎么DP?考虑:1 1 2 3 4 4 5w=1: 7, 7 = 1 * 7w=2: 10 ...

i++与++i的区别

i++与++i的意思都是i自身加1,不过这个两个语句却有很大的区别. ++i,就是直接在i上再加1,这个无需多解释. i++会稍微特殊些,他会在下次执行语句,再遇到i时,才会在i身上加1. 打个比方, ...

详述USB OTG发展及协议标准

USB On-The-Go 扩大了USB 的应用领域,将USB 从传统的PC 与外设通讯的模式,扩展到移动电子和嵌入式领域中,抛开主机PC,实现通常的外设与外设之间点对点(Point to Point ...

2016年中国大学生程序设计竞赛(杭州)1006 Four Operations

Four Operations Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

《FPGA全程进阶---实战演练》第七章 让按键恢复平静

1基础理论部分 A:“怎么按键按下去之后,结果不正常?”,B:“按键你消抖了吗?”A:“消什么抖,还要消抖?”,  B:“先检测按键变化,然后消抖过滤波动信号,最后输出稳定信号”,A:“我好像漏掉了什 ...

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值