链式队列指存储结构为链式存储。核心的也是链队结点的创建以及队首、队尾指针的表示。代码如下:

// ChainQueue.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include <iostream>using namespace std;
typedef char type;//链队结点定义
typedef struct node
{type data;struct node *next;
}node,*QueueNode;//链表结构体定义
typedef struct Queue
{QueueNode front;//队首指针QueueNode rear;//队尾指针int size;//队列元素个数
}Queue,*pQueue;//初始化队列
void InitQueue(pQueue q)
{q->front=(QueueNode)malloc(sizeof(node));if(NULL==q->front){exit(-1);}q->front->next=NULL;q->rear=(QueueNode)malloc(sizeof(node));if(NULL==q->rear){exit(-1);}q->rear->next=NULL;q->size=0;
}//入队操作
void EnterQueue(pQueue q,type data)
{QueueNode newNode=(QueueNode)malloc(sizeof(node));if(NULL==newNode){cout<<"申请内存失败"<<endl;exit(-1);}newNode->data=data;q->size++;if(NULL==q->front->next) //队列为空{q->front->next=newNode;q->rear->next=newNode;newNode->next=NULL;}else{q->rear->next->next=newNode;newNode->next=NULL;q->rear->next=newNode;}
}//出队  返回原队头结点
QueueNode OutQueue(pQueue q)
{if(NULL==q->front->next){return NULL;}QueueNode temp =q->front->next;q->front->next=temp->next;q->size--;return temp;
}
//打印队列
void PrintQueue(pQueue q)
{if(0==q->size)exit(-1);QueueNode temp=q->front->next;while(NULL!=temp){cout<<temp->data<<" ";temp=temp->next;}cout<<endl;
}
int _tmain(int argc, _TCHAR* argv[])
{type a[5]={'a','b','c','d','e'};Queue q;InitQueue(&q);for(int i=0;i<5;i++) //入队EnterQueue(&q,a[i]);PrintQueue(&q);OutQueue(&q);  //出队PrintQueue(&q);cout<<"队尾元素"<<q.rear->next->data<<endl;return 0;
}

运行结果为:

链队的创建、入队、出队相关推荐

  1. 队列的入队/出队操作

    //............编程实现队列的入队/出队操作 (先进先出) #include<iostream> using namespace std; //node表示队列中每个节点元素 ...

  2. java循环队列入队出队算法_循环队列实现

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

  3. 简单实现顺序表示的栈与队列的进栈出栈创空栈入队出队创空队等算法

    栈和队列是两种最重要的数据结构,也是两种最典型的抽象数据类型,应用非常的广泛. 目录 一.栈 一.空栈的创建 二.进栈 三.出栈 二.队列 一.创建空队列 二.队列的入队和出队 三.取队列头元素 一. ...

  4. 顺序队和循环队列,队列篇(顺序队和循环队列入队出队操作)

    数据结构专升本学习,队列篇(顺序队和循环队列) 前言: 之前我们把栈学完了,比较简单,今天我们学习队列里面的顺序队和循环队列,说难不难,说简单不简单,我们需要认真学习,博主会尽力把原理和逻辑讲明白,不 ...

  5. redis + php 简单的 队列 入队-出队

    //入队 操作<?php //链接redis $redis = new Redis(); $redis->connect("127.0.0.1","6379& ...

  6. 约瑟夫环问题(动态链表操作)n个学生围成一圈,每m个出队,输出所有出队的序列

    需求:掌握链表的简单操作(增删查改)详解在备注中指出 #include <iostream> #include <stdlib.h> #include <stdio.h& ...

  7. 5-1链队入队出队操作

    链队基本操作. #include<iostream> using namespace std;#define OK 1 #define ERROR 0 typedef int Status ...

  8. 【数据结构入门】队列(Queue)详解(定义、销毁、入队、出队等)| 图解数据结构,超详细哦~

    文章目录 (1)前言 1)队列的概念 2)队列的结构 (2)队列的实现(链式结构) 1)队列的定义 2)队列的初始化 3)队列的销毁 4)入队(尾插) 5)出队(头删) 6)获取队列元素个数 7)获取 ...

  9. 链式队列,队列篇(链式队列的出队入队操作)

    数据结构,队列篇(链式队列) 前言: 上一篇博主简单讲解了顺序队列和循环队列,今天讲解队列最后一篇链式队,链式队在数据结构中用到比较多,用来做一些排队的算法,还有链式队列是也是和链式栈一样采用链表的方 ...

  10. 队列入队和出队程序演示

    #include <stdio.h> #include <string.h> #include <malloc.h>typedef struct Queue {in ...

最新文章

  1. 42. fastjson处理下划线和驼峰问题的方法和源码分析
  2. redis持久化方案比较
  3. Remoting系列专题---构建Remoting“防火墙”
  4. (5) ebj学习:ejb用jpa操作数据库1
  5. centos7 安装redis_Redis6安装(上) - 单机单实例
  6. tensorflow中创建多个计算图(Graph)
  7. Java JPA学习与使用小记
  8. mongodb删除文档
  9. 【MySQL】MySQL 如何查看sql语句执行时间和效率
  10. 金蝶kis云+sqlserver报表分析
  11. mysql怎样在bat脚本中添加日志_如何在windows下用bat脚本定时备份mysql
  12. matlab简单分析模拟滤波器 IIR
  13. 插值方法 matlab 实验,matlab计算方法实验报告3(插值问题).doc
  14. 华硕主板装系统蓝屏_装xp系统蓝屏,电脑安装xp系统蓝屏怎么办
  15. 9.进程间通信的方式有哪些?各自的优缺点及应用选择?
  16. FFmpeg —— 为视频添加文字水印(完美解决中文乱码,无需编译)
  17. 从“靠山吃山,靠水吃水”到守望“绿水青山”
  18. alios下载_AliOS-Things ESP8266 编译下载
  19. 武汉理工大学c语言pta选择题答案,武汉理工大学c语言实验及答案.doc
  20. Ant Design vue 改变表格背景颜色

热门文章

  1. (转载)有关推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入、浮空输入、模拟输入区别...
  2. Zuul(一)网关和路由
  3. jQuery 08-13
  4. pythongbk编码怎么解决_如何解决 Python print 输出文本显示 gbk 编码错误
  5. 云服务器上通过wget安装JDK
  6. 录屏储存失败因为5823_为什么屏幕录制失败因为5823
  7. 量价密码同花顺副图指标,量能类指标(同花顺指标 副图 源码 测试图)
  8. 计算机微课用什么音乐,有关微课音乐课堂教学
  9. html圣诞快乐英文,圣诞快乐英语,圣诞快乐英语简写?
  10. 一个C#写的爬虫程序