#include <ros/ros.h>
#include <string>
#include <stdlib.h>
#include <iostream>
#include <sys/msg.h>
#include <cstdio>
#include <cstdlib>
#include <sys/types.h>
#include <sys/ipc.h>
#include <unistd.h> using namespace std; typedef struct _QUEUE_NODE
{
int *pData;
int length;
int head;
int tail;
int count;
}QUEUE_NODE; QUEUE_NODE* alloca_queue(QUEUE_NODE* pQueue_Node,int number)
{
if( == number)
return NULL;
pQueue_Node = (QUEUE_NODE*)malloc(sizeof(QUEUE_NODE));
memset(pQueue_Node, , sizeof(QUEUE_NODE));
pQueue_Node->pData = (int*)malloc(sizeof(int)*number); memset(pQueue_Node->pData, , sizeof(pQueue_Node->pData));
if(NULL == pQueue_Node->pData)
{
free(pQueue_Node);
return NULL;
}
pQueue_Node->length = number;
return pQueue_Node;
} bool delete_queue(const QUEUE_NODE* pQueue_Node)
{
if(NULL == pQueue_Node)
return false;
free(pQueue_Node->pData);
free((void*)pQueue_Node);
return true;
} bool insert_queue(QUEUE_NODE* pQueue_Node, int value)
{
if(NULL == pQueue_Node)
return false; if(pQueue_Node->length == pQueue_Node->count)
return false; pQueue_Node->pData[pQueue_Node->tail] = value;
pQueue_Node->tail = (pQueue_Node->tail + ) % pQueue_Node->length;
pQueue_Node->count ++;
return true;
} int main(int argc, char **argv)
{
std::cout<<"test qusetion9 start !"<<std::endl;
ros::init(argc,argv,"question9_node");
ros::NodeHandle node;
ros::Rate r(); QUEUE_NODE* qQueue_node;
qQueue_node = alloca_queue(qQueue_node,);
cout << "size is : " << qQueue_node->length << endl;
cout << "tail is : " << qQueue_node->tail << endl;
cout << "head is : " << qQueue_node->head << endl;
cout << "pData->tail is : " << qQueue_node->pData[qQueue_node->tail] << endl; if(insert_queue(qQueue_node,) == true)
{
cout << "size is : " << qQueue_node->length << endl;
cout << "data is : " << qQueue_node->pData[qQueue_node->tail] << endl;
} if(insert_queue(qQueue_node,) == true)
{
cout << "size is : " << qQueue_node->length << endl;
cout << "data is : " << qQueue_node->pData[qQueue_node->head+] << endl;
}
}

循环队列c++代码的更多相关文章

  1. java循环队列实现代码

    public class Queue { //队首指针 private int front; //队尾指针 private int rear; //数组 private int[] arr; //数组 ...

  2. 队列的理解和实现(一) ----- 循环队列(java实现)

    什么是队列 我们都知道栈是先进后出的一种线性表,与之相反的是,队列是一种先进先出的线性表.它只允许在表的一端进行插入,而在另一端进行删除.举个例子来说,在生活中我们买东西需要进行排队,最先排队的可以最 ...

  3. 数据结构算法C语言实现(十二)--- 3.4循环队列&队列的顺序表示和实现

    一.简述 空队列的处理方法:1.另设一个标志位以区别队列是空还是满:2.少用一个元素空间,约定以队列头指针在队尾指针下一位置上作为队列呈满的状态的标志. 二.头文件 //3_4_part1.h /** ...

  4. 使用 JavaScript 实现基本队列、优先队列和循环队列

    1.基本队列的实现 基本队列的方法中,包含了 ①向队列(尾部)中添加元素(enqueue).②(从队列头部)删除元素(dequeue).③查看队列头部的元素(front).④查看队列是否为空(isEm ...

  5. 数据结构Java实现07----队列:顺序队列&顺序循环队列、链式队列、顺序优先队列

    一.队列的概念: 队列(简称作队,Queue)也是一种特殊的线性表,队列的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置插入和删除,而队列只允许在其一端进行插入操作在其 ...

  6. javascript实现数据结构与算法系列:队列 -- 链队列和循环队列实现及示例

    1 队列的基本概念 队列(Queue):也是运算受限的线性表.是一种先进先出(First In First Out ,简称FIFO)的线性表.只允许在表的一端进行插入,而在另一端进行删除. 队首(fr ...

  7. [置顶] ※数据结构※→☆线性表结构(queue)☆============循环队列 顺序存储结构(queue circular sequence)(十)

    循环队列 为充分利用向量空间,克服"假溢出"现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量.存储在其中的队列称为循环队列(Circular Queue). ...

  8. 数据结构:循环队列(C语言实现)

    生活中有非常多队列的影子,比方打饭排队,买火车票排队问题等,能够说与时间相关的问题,一般都会涉及到队列问题:从生活中,能够抽象出队列的概念,队列就是一个能够实现"先进先出"的存储结 ...

  9. C++编程练习(5)----“实现简单的循环队列的顺序存储结构“

    队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表. 队列是一种先进先出(First In First Out)的线性表,简称FIFO.允许插入的一端称为队尾,允许删除的一端 ...

随机推荐

  1. IT兄弟连 HTML5教程 HTML文档头部元素head

    HTML头部标记是<head>,主要包括页面的一些基本描述语句,以及CSS和JavaScript,一般都可以定义在头部元素中.它用于包含当前文档的有关信息,例如网页标题和关键字等.通常位于 ...

  2. GPU跑tf-faster-rcnn demo以及训练自己的数据

    https://blog.csdn.net/qq_39123369/article/details/85245512

  3. Do Deep Nets Really Need to be Deep?

    url: https://arxiv.org/pdf/1312.6184.pdf year: NIPS2014 浅网络学习深网络的函数表示, 训练方法就是使用深网络的 logits(softmax i ...

  4. nginx: [emerg] unknown directive “ ” in /usr/local/nginx/nginx.conf.conf:xx报错处理

    当我们在修改Nginx的配置文件,然后加载配置文件./nginx -s reload   报错类似的错误, nginx: [emerg] unknown directive “ ” in /usr/l ...

  5. C#上手练习6(方法语句1)

    方法是将完成同一功能的内容放到一起,方便书写和调用的一种方式,也体现了面向对象语言中封装的特性. 定义方法的语法形式如下. 访问修饰符    修饰符    返回值类型    方法名(参数列表){    ...

  6. C# recording audio based on audio in Console

    1. Install-package naudio -v 1.9.0 2. using NAudio.Wave; 3. public class NAudioHelper { public WaveI ...

  7. concurrent.futures模块简单介绍(线程池,进程池)

    一.基类Executor Executor类是ThreadPoolExecutor 和ProcessPoolExecutor 的基类.它为我们提供了如下方法: submit(fn, *args, ** ...

  8. Python3---爬虫Post传参

    前言 Python3 Post 传参主要用到的是urllib.request.urlopen(url,data)参数当中data.data参数主要是设置post的传参. 修改时间:20191218 天 ...

  9. cmd start命令启动文件的路径

    最近在脚本中通过WScript.Shell执行命令行,实现IE打开Chrome的功能. JS代码如下: var singleurl = window.location.href; var isChro ...

  10. Qt窗口退出与事件循环退出的问题

    我在Qt主程序中开启一个线程,线程中使用信号-槽来产生QMainWindow(GUI),main函数代码如下:int main(int argc, char *argv[]){ QApplicatio ...