#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. Python自动群发邮件,只需20行代码!

    今日分享 Python自动群发邮件 import smtplib from email import (header) from email.mime import (text, applicatio ...

  2. ASP.NET ---- Repeater 遍历出省市

    Repeater  控件可以数据库中的数据,一条条的查找出,不需要后端在进行遍历输出了, Repeater必须使用的是Itemtemplate,其它的类型模板按需添加,主要记住Itemtemplate ...

  3. 解决pip使用异常No module named 'pip'

    场景 在使用pip进行升级时 python install --upgrade named pip 时提示: No module named pip 注: 博客: https://blog.csdn. ...

  4. VS2017 打开WebService 提示已经在解决方案中打开了具有该名称的项目

    .net开发.用VS2017工具,打开VS2010创建的WebSevice工程时,提示工程不可用. 重新加载后提示:已经在解决方案中打开了具有该名称的项目. 该问题原因是因为启用了源代码管理工具的问题 ...

  5. python : html 调用本地python程序

    <!DOCTYPE html> <html> <head> <meta charset="gb2312"> <title> ...

  6. [20191011]通过bash计算sql语句的sql_id.txt

    [20191011]通过bash计算sql语句的sql_id.txt --//当我知道如何通过bash计算sql语句的full_hash_value ,就很想通过bash编程计算sql_id.当时受限 ...

  7. MySQL 部署分布式架构 MyCAT (二)

    安装 MyCAT 安装 java 环境(db1) yum install -y java 下载 Mycat-server-1.6.5-release-20180122220033-linux.tar. ...

  8. 使用ML.NET进行自定义机器学习

    ML.NET是Microsoft最近发布的用于机器学习的开源,跨平台,代码优先的框架.尽管对我们来说是一个新的框架,但该框架的根源是Microsoft Research,并且在过去十年中已被许多内部团 ...

  9. 8.Java基础_if-else和switch选择语句

    /* 选择语句(基本与C++相同) if-else语句: 格式一: if(关系式){ 语句体; } 格式二: if(关系式){ 语句体; } else{ 语句体; } 格式三: if(关系式){ 语句 ...

  10. c# WF 第8节 label控件

    本节内容: 1: 文本控件 2:实现label的你追我赶实例 1:文本控件 2:实现label的你追我赶实例 步骤1 : 步骤2 : 知识点: