队列的链式存储结构不常用

  • 同理,实际上也可以用一个单链表实现
  • 插入、删除分别在链表两头进行,即插入在表尾(rear),删除在表头(front)

图解如下:

0、结构初始化

struct ListNode {ElementType val;struct ListNode* next;
};
struct QueueNode {int size;struct ListNode* front;struct ListNode* rear;
};

1、建立空队列 createQueue

struct QueueNode* createQueue() {struct QueueNode* q=malloc(sizeof(struct QueueNode));q->front = q->rear = NULL;q->size=0;return q;
}

2、入队操作addQueue

//插入在表尾

void addQueue(struct QueueNode* q,ElementType x) {struct ListNode* temp=malloc(sizeof(struct ListNode));temp->val=x;if (q->size==0) {q->front = q->rear =temp;}else {q->rear->next=temp;q->rear=temp;}q->size++;
}

3、出队操作deleteQueue

//删除在表头

ElementType deleteQueue(struct QueueNode* q) {struct ListNode* temp;ElementType tmp;if (q->size==0) return ERROR;else {temp=q->front;q->front=temp->next;tmp=temp->val;free(temp)q->size--;return tmp;}
}

转载于:https://www.cnblogs.com/WakingUp/p/8543421.html

队列(链式存储结构)相关推荐

  1. Java实现队列 链式存储结构

    2019独角兽企业重金招聘Python工程师标准>>> 队列的链式存储结构 示例代码如下, package hash;/*** Created with IntelliJ IDEA. ...

  2. 队列的链式存储结构及实现

    队列的链式存储结构,其实就是线性表的单链表,只不过它只是尾进头出而已,我们把它简称为链队列.为了操作上的方便,我们将队头指针指向链队列的头结点,而队尾指针指向终端节点.如果 空队列时,front和re ...

  3. 队列链式存储 - Java实现

    队列链式存储结构实现 package com.kiger.Link;/*** @ClassName LinkQueue* @Description 链式队列实现* @Author zk_kiger* ...

  4. 数据结构(二):线性表包括顺序存储结构(顺序表、顺序队列和顺序栈)和链式存储结构(链表、链队列和链栈)...

    还记得数据结构这个经典的分类图吧: 今天主要关注一下线性表. 什么是线性表 线性表的划分是从数据的逻辑结构上进行的.线性指的是在数据的逻辑结构上是线性的.即在数据元素的非空有限集中 (1) 存在唯一的 ...

  5. 队列的链式存储结构及其实现_了解队列数据结构及其实现

    队列的链式存储结构及其实现 A queue is a collection of items whereby its operations work in a FIFO - First In Firs ...

  6. Python数据结构与算法基础|第五期:代码实现——循环队列的链式存储结构

    在上一次,我们通过取余等数学方法实现了顺序存储的循环队列.由于我们使用的是Python内置的列表类型作为底层,实际上我们的存储空间并不是首尾相连的.下面,我们使用链式存储结构来实现一个真正首尾相连的循 ...

  7. 队列的定义、循环队列的顺序存储结构及链式存储结构

    文章目录 1 队列的定义 1.1 文字定义 1.2 代码定义 2 循环队列 2.1 循环队列的定义 2.2 循环队列的顺序存储结构 3 队列的链式存储结构 3.1 链队列的入队操作 3.2 链队列的出 ...

  8. 队列的链式存储结构(链队)

    链队 1.队列的链式存储结构 typedef struct QNode{ //结点结构QElemType data; //结点数据域struct QNode *next; //结点指针域 }QNode ...

  9. 链表list(链式存储结构实现)_VOL.2 如何在python中实现链式存储结构

    一.前言 链式存储作为一种重要的数据存储方式有着极强的数据组织能力.灵活型和动态性,在众多数据结构中应用非常广泛.所谓链式存储结构,就是采用分散的存储空间分别存储每一组数据再通过地址链接的形式将全部数 ...

  10. 实验一 链式存储结构的基本操作

    广州大学学生实验报告 开课实验室:计算机科学与工程实验(电子楼418A) 2019年4月27日 学院 计算机科学与教育软件学院 年级.专业.班 计算机科学与技术172班 姓名 xxx 学号 17061 ...

最新文章

  1. WIN7源码安装Apache和PHP注意事项
  2. 基于注解处理器开发自动生成getter和setter方法的插件
  3. C#winform listbox多选的取值,采用DataRowView
  4. 白话Elasticsearch23-深度探秘搜索技术之通过ngram分词机制实现index-time搜索推荐
  5. EntityFramework 动态构造排序 FuncIQueryableT, IOrderedQueryableT Dynamic
  6. C# DDOS攻击代码
  7. linux 不重启加载内核,解决linux内核升级后不能重启系统的故障
  8. 在ASP.NET 中实现单点登录(利用Cache, 将用户信息保存在服务器缓存中)
  9. Dev-c++下载地址
  10. 谋定而后动,理想不相信热血
  11. RegistryWizard(注册表错误修复工具)v3.4.18.528绿色版
  12. 程序员史诗级必读书单吐血整理四个维度系列80+本书(珍藏版)
  13. 拔丝芋头的Java学习日记--Day2
  14. 2、SpringBoot接口Http协议开发实战8节课(7-8)
  15. SQL零基础入门学习(四)
  16. python制作浏览器
  17. 未来交通已经“上线” 高德地图智慧交通合作已攻150城,半年大增约五成
  18. MATLAB中常用到的符号汇总(持续更新)
  19. 【玖哥乱弹】祭天时不同程序员的不同杀法
  20. YouTube引流技巧教程!

热门文章

  1. linux 创建用户_用 Bash 脚本发送新用户帐户创建的邮件 | Linux 中国
  2. server2012文件服务器的开始按钮,Windows Server 2012实用技巧集锦
  3. centos7安装uwsgi报错_nginx + uwsgi 发布django项目!(linux为centos7)
  4. Python(十六):标准库
  5. ftok函数(file to key)
  6. 关于man命令后面加数字
  7. NYOJ a problem is easy
  8. 【HDU6704】K-th occurrence(后缀数组+二分+st+主席树)
  9. 大数据的4v特征及思考_大数据智能下数据脱敏的思考
  10. 机器学习- 吴恩达Andrew Ng Week7 知识总结Support Vector Machines