Queue设计与实现

Queue基本概念

队列是一种特殊的线性表

队列仅在线性表的两端进行操作

队头(Front):取出数据元素的一端

队尾(Rear):插入数据元素的一端

队列不允许在中间部位进行操作!

常用操作

销毁队列

清空队列

进队列

出队列

获取队头元素

获取队列的长度

C语言描述=====》队列的设计与实现 人生财富库积累

#ifndef _MY_QUEUE_H_

#define _MY_QUEUE_H_

 

typedef void Queue;

 

Queue* Queue_Create();

 

void Queue_Destroy(Queue* queue);

 

void Queue_Clear(Queue* queue);

 

int Queue_Append(Queue* queue, void* item);

 

void* Queue_Retrieve(Queue* queue);

 

void* Queue_Header(Queue* queue);

 

int Queue_Length(Queue* queue);

 

#endif //_MY_QUEUE_H_

 

队列的顺序存储设计与实现

1、基本概念

 

2、设计与实现

#ifndef _MY_SEQQUEUE_H_

#define _MY_SEQQUEUE_H_

 

typedef void SeqQueue;

 

SeqQueue* SeqQueue_Create(int capacity);

 

void SeqQueue_Destroy(SeqQueue* queue);

 

void SeqQueue_Clear(SeqQueue* queue);

 

int SeqQueue_Append(SeqQueue* queue, void* item);

 

void* SeqQueue_Retrieve(SeqQueue* queue);

 

void* SeqQueue_Header(SeqQueue* queue);

 

int SeqQueue_Length(SeqQueue* queue);

 

int SeqQueue_Capacity(SeqQueue* queue);

 

#endif //_MY_SEQQUEUE_H_

 

 

队列的链式存储设计与实现

1、基本概念

 

2、设计与实现

#ifndef _MY_LINKQUEUE_H_

#define _MY_LINKQUEUE_H_

 

typedef void LinkQueue;

 

LinkQueue* LinkQueue_Create();

 

void LinkQueue_Destroy(LinkQueue* queue);

 

void LinkQueue_Clear(LinkQueue* queue);

 

int LinkQueue_Append(LinkQueue* queue, void* item);

 

void* LinkQueue_Retrieve(LinkQueue* queue);

 

void* LinkQueue_Header(LinkQueue* queue);

 

int LinkQueue_Length(LinkQueue* queue);

 

#endif //_MY_LINKQUEUE_H_

 

 

 

数据结构:Queue的更多相关文章

  1. linkin大话数据结构--Queue

    链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer).由于不必按顺序存储,所以插入和删除速度超 ...

  2. 天方夜谈·数据结构·Queue

    "我在想Y的时候不能想X....." 什么叫做Queue(队列)?"队列是项的集合,对于每一项x和y,如果x在y之前离开对头,那么x一定在y之前进入队列--Sesh·Ve ...

  3. 数据结构 queue

    问题描述 t 个团队在餐厅前准备排队. 他们的排队规则是:初始队伍为空.一个人要排进队伍前, 先搜索队伍中是否有他的队友. 如果有, 这名成员就直接站在最后一个队友的后面,如果没有,那么这名成员只能排 ...

  4. [Java数据结构]Queue

    Queue扩展了Collection,它添加了支持根据先进先出FIFO原则对元素排序的方法. 当对Queue调用add和offer方法时,元素始终添加在Queue的末尾:要检索一个元素,就要使用一个元 ...

  5. 多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类)

    前言:刚学习了一段机器学习,最近需要重构一个java项目,又赶过来看java.大多是线程代码,没办法,那时候总觉得多线程是个很难的部分很少用到,所以一直没下决定去啃,那些年留下的坑,总是得自己跳进去填 ...

  6. hdu 1972.Printer Queue 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1972 题目意思:需要模拟打印机打印.打印机里面有一些 job,每个job被赋予1-9的其中一个值,越大 ...

  7. SPL标准库常用的数据结构

    栈数据结构 $stack = new SplStack(); //栈数据结构->先进后出 2 $stack->push('data1'); //入栈 $stack->push('da ...

  8. 数据结构算法集---C++语言实现

    //数据结构算法集---C++语言实现 //各种类都使用模版设计,可以对各种数据类型操作(整形,字符,浮点) /////////////////////////// // // // 堆栈数据结构 s ...

  9. java队列——queue详细分析

    Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构 Queue接口与List.Set同一级别,都是继承了Collection接口.LinkedList实现了Deque接 口.   Q ...

  10. C++ queue deque

    queue queue 队,一种先进先出的数据结构,c++ stl里也叫容器适配器,它是以deque 或list为基础的一种数据结构 queue的相关操作 queue<int deque< ...

随机推荐

  1. 使用adb安装遇到的一些坑

    1.下载安装android SDK,可通过浏览器或者相关手机软件下载软件下载需要安装的apk安装文件,把apk文件放到android-sdk-windows\platform-tools下 2.可通过 ...

  2. ACCESS常用数字类型的说明和取值范围

    下面是ACCESS常用数字类型的说明和取值范围列表明供参考 数字类型                 范围 Byte(字节)            介于 0 到 255 之间的整型数. Integer ...

  3. 如何使用webpack打包项目

    webpack是前端开发中比较常用的打包工具之一,另外还有gulp,grunt.之前没有涉及过打包这块,这里介绍一下使用webpack打包的流程. Grunt和Gulp的工作方式是:在一个配置文件中, ...

  4. python学习笔记-学习大纲

  5. C++ Templates编程(模板参数)

    //file max.hpp template <typename T> //template<class T> inline T const& max (T cons ...

  6. babel-polyfill

    babel-polyfill Babel默认只转换新的JavaScript句法(syntax),而不转换新的API,比如Iterator.Generator.Set.Maps.Proxy.Reflec ...

  7. JSP:注册&登录

    数据库:Mysql 除了_id自动增长,其余全是varchar 注册:register.jsp <%@ page language="java" import="j ...

  8. 模拟select控件,css模拟下拉

    <!DOCTYPE html > <head>     <meta http-equiv="Content-Type" content="t ...

  9. is和==的区别

    is 比较的是内存地址 == 比较的是内容 当两个变量指向同一个对象的时候. is是True, ==也是True

  10. spring boot js 文件引用 单引问题。

    首页 index.html 访问首页空白 . F12 控制台看页面元素布局.发现有两个body 标签 ,而且 </head> 标红. 各种检查....好像是没有问题. 但就是访问空白.去掉 ...