c实现队列
使用链表实现队列的入队和出队
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h> using namespace std; //节点
typedef struct student
{
int data;
struct student *next;
}node; //队列
typedef struct linkqueue
{
node *first; //队首节点
node *rear; //队尾节点
}queue; //入队
queue *insert(queue *headque, int x)
{
//1. 定义变量
node *s = NULL; //2. 新建节点
s = (node*)malloc(sizeof(node));
s->data = x;
s->next = NULL; //3. 插入队尾
if (headque->rear == NULL) //第一个节点
{
headque->first = s;
headque->rear = s;
}
else
{
headque->rear->next = s;
headque->rear = s;
} //4. 返回队列
return headque;
} //出队
queue *del(queue *headque)
{
//1. 定义变量
node *p = NULL;
int x = ; //2. 节点出队
if(headque->first == NULL) //队列为空
{
printf("队列为空\n");
}
else
{
x = headque->first->data;
printf("num:%d\n", x); p = headque->first;
if (headque->first == headque->rear) //到达队尾
{
headque->first = NULL;
headque->rear = NULL;
}
else //删除节点
{
headque->first = headque->first->next;
free(p);
p = NULL;
} //4. 返回队列
return headque;
}
} //显示队列所有节点信息
void show(queue *headque)
{
//1. 定义变量
node *p = NULL;
int x = ; //2. 遍历显示
p = headque->first;
while(p != NULL)
{
x = p->data;
printf("%d ", x);
p = p->next;
}
printf("\n");
} int main()
{
queue *headque = (queue*)malloc(sizeof(queue));
insert(headque, );
insert(headque, );
insert(headque, );
show(headque);
del(headque);
show(headque);
del(headque);
show(headque); }
c实现队列的更多相关文章
- 消息队列——RabbitMQ学习笔记
消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...
- 消息队列 Kafka 的基本知识及 .NET Core 客户端
前言 最新项目中要用到消息队列来做消息的传输,之所以选着 Kafka 是因为要配合其他 java 项目中,所以就对 Kafka 了解了一下,也算是做个笔记吧. 本篇不谈论 Kafka 和其他的一些消息 ...
- Beanstalkd一个高性能分布式内存队列系统
高性能离不开异步,异步离不开队列,内部是Producer-Consumer模型的原理. 设计中的核心概念: job:一个需要异步处理的任务,是beanstalkd中得基本单元,需要放在一个tube中: ...
- .net 分布式架构之业务消息队列
开源QQ群: .net 开源基础服务 238543768 开源地址: http://git.oschina.net/chejiangyi/Dyd.BusinessMQ ## 业务消息队列 ##业务消 ...
- 【原创经验分享】WCF之消息队列
最近都在鼓捣这个WCF,因为看到说WCF比WebService功能要强大许多,另外也看了一些公司的招聘信息,貌似一些中.高级的程序员招聘,都有提及到WCF这一块,所以,自己也关心关心一下,虽然目前工作 ...
- 缓存、队列(Memcached、redis、RabbitMQ)
本章内容: Memcached 简介.安装.使用 Python 操作 Memcached 天生支持集群 redis 简介.安装.使用.实例 Python 操作 Redis String.Hash.Li ...
- Java消息队列--ActiveMq 实战
1.下载安装ActiveMQ ActiveMQ官网下载地址:http://activemq.apache.org/download.html ActiveMQ 提供了Windows 和Linux.Un ...
- Java消息队列--JMS概述
1.什么是JMS JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送 ...
- 消息队列性能对比——ActiveMQ、RabbitMQ与ZeroMQ(译文)
Dissecting Message Queues 概述: 我花了一些时间解剖各种库执行分布式消息.在这个分析中,我看了几个不同的方面,包括API特性,易于部署和维护,以及性能质量..消息队列已经被分 ...
- [数据结构]——链表(list)、队列(queue)和栈(stack)
在前面几篇博文中曾经提到链表(list).队列(queue)和(stack),为了更加系统化,这里统一介绍着三种数据结构及相应实现. 1)链表 首先回想一下基本的数据类型,当需要存储多个相同类型的数据 ...
随机推荐
- ASP.NET Core分布式项目-1.IdentityServer4登录中心
源码下载 一.添加服务端的api 1.添加NUGet包 IdentityServer4 点击下载,重新生成 2.添加Startup配置 打开Startup文件 public class Startup ...
- [Python爬虫] 使用 Beautiful Soup 4 快速爬取所需的网页信息
[Python爬虫] 使用 Beautiful Soup 4 快速爬取所需的网页信息 2018-07-21 23:53:02 larger5 阅读数 4123更多 分类专栏: 网络爬虫 版权声明: ...
- (六)mybatis之多对一关系(简单)
一.需求分析 需求: 查询所有订单信息及订单下的订单明细信息 分析: 一条订单只能由一个消费者下单,但是一条订单有多条订单明细. 二.创建数据库表和实体对象 Customer.java ...
- 适配方案(七)iPhone各种系统分辨率、屏幕分辨率
- call、apply、bind一直是不求甚解!
一直感觉代码中有call和apply就很高大上(看不懂),但是都草草略过,今天非要弄明白!以前总是死记硬背:call.apply.bind 都是用来修改函数中的this,传参时,call是一个个传参, ...
- 【多进程】php多进程编程
先看下我已经安装的php版本 PHP (cli) (built: Jul ::) ( NTS ) Copyright (c) - The PHP Group Zend Engine v3.- Zend ...
- win7电脑数字键盘失灵怎么办
转自:https://zhidao.baidu.com/question/370674322729785324.html 解决方法: 第一步.同时按下“Windows键” + “R”调出运行窗口. 第 ...
- flutter packages get 慢 解决方案
国内使用 flutter packages get 命令,一直是 This is taking an unexpectedly long time 状态 科.学.上.网.无.效. windows解决 ...
- oracle 如何将带有,的一列分成多列
select regexp_substr('1,2,3' , '[^,]+' , 1 , ROWNUM) FROM dual CONNECT BY ROWNUM<=LENGTH('1,2,3') ...
- Linux常用命令及文件管理
Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. 目录解释: .代表此层目录: .. 代表父目录:-代表前一个目录:~代表是家目录. (1)ls命令(显示) -a:列出所有文 ...