C#通过链表实现队列的方法
本文实例讲述了C#通过链表实现队列的方法。分享给大家供大家参考。具体实现方法如下:
public class Node { public int Data { get; set; } public Node Next { get; set; } public Node(int data) { this.Data = data; } } public class Queue { private Node _head; private Node _tail; private int _count = 0; public Queue() { } public void Enqueue(int data) { Node _newNode = new Node(data); if (_head == null) { _head = _newNode; _tail = _head; } else { _tail.Next = _newNode; _tail = _tail.Next; } _count++; } public int Dequeue() { if (_head == null) { throw new Exception("Queue is Empty"); } int _result = _head.Data; _head = _head.Next; return _result; } public int Count { get { return this._count; } } }
希望本文所述对大家的C#程序设计有所帮助。
相关推荐
-
java使用数组和链表实现队列示例
(1)用数组实现的队列: 复制代码 代码如下: //先自己定义一个接口 public interface NetJavaList { public void add(Student t); //继承该接口的类必须实现的方法 public Student get(int index);//队列的加入,取出,队列的大小 public int size(); } 定义一个学生类 复制代码 代码如下: class Student { private String na
-
详解Redis用链表实现消息队列
前言 Redis链表经常会被用于消息队列的服务,以完成多程序之间的消息交换.个人认为redis消息队列有一个好处,就是可以实现分布式和共享,就和memcache作为mysql的缓存和mysql自带的缓存一样. 链表实现消息队列 Redis链表支持前后插入以及前后取出,所以如果往尾部插入元素,往头部取出元素,这就是一种消息队列,也可以说是消费者/生产者模型.可以利用lpush和rpop来实现.但是有一个问题,如果链表中没有数据,那么消费者将要在while循环中调用rpop,这样以来就浪费cpu资源
-
C语言数据结构链表队列的实现
C语言数据结构链表队列的实现 1.写在前面 队列是一种和栈相反的,遵循先进先出原则的线性表. 本代码是严蔚敏教授的数据结构书上面的伪代码的C语言实现代码. 分解代码没有包含在内的代码如下: #include <stdio.h> #include <stdlib.h> #define OK 1 #define ERROR 0 typedef int QElemtype; typedef int status; 2.代码分解 2.1对队列和节点的结构定义 typedef struct
-
C#通过链表实现队列的方法
本文实例讲述了C#通过链表实现队列的方法.分享给大家供大家参考.具体实现方法如下: public class Node { public int Data { get; set; } public Node Next { get; set; } public Node(int data) { this.Data = data; } } public class Queue { private Node _head; private Node _tail; private int _count =
-
使用python实现数组、链表、队列、栈的方法
引言 什么是数据结构? 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成. 简单来说,数据结构就是设计数据以何种方式组织并存储在计算机中. 比如:列表,集合和字典等都是数据结构 N.Wirth:"程序=数据结构+算法" 数据结构按照其逻辑结构可分为线性结构.树结构.图结构 线性结构:数据结构中的元素存在一对一的互相关系. 树结构:数据结构中的元素存在一对多的互相关系. 图结构:数据结构中的元素存在多对多的互相关系. 数组 在python中是没有数
-
Python实现队列的方法示例小结【数组,链表】
本文实例讲述了Python实现队列的方法.分享给大家供大家参考,具体如下: Python实现队列 队列(FIFO),添加元素在队列尾,删除元素在队列头操作 列表实现队列:利用python列表方法 代码如下: # 列表实现队列 class listQueue(object): def __init__(self): self.items = [] def is_empty(self): return self.items == None def size(self): return len(sel
-
java链表应用--基于链表实现队列详解(尾指针操作)
本文实例讲述了java基于链表实现队列.分享给大家供大家参考,具体如下: 在开始栈的实现之前,我们再来看看关于链表的只在头部进行的增加.删除.查找操作,时间复杂度均为O(1). 一.链表改进分析 对于队列这种数据结构,需要在线性结构的一端插入元素,另外一端删除元素.因此此时基于链表来实现队列,则有一端的时间复杂度为O(n).因此我们不能使用之前已经实现的链表结构,我们需要改进我们的链表.思路如下: 1.参考在链表头部删除.增加元素的时间复杂度为O(1)的思路,我们在链表的尾部设立一个Node型的
-
JAVA 实现延迟队列的方法
延迟队列的需求各位应该在日常开发的场景中经常碰到.比如: 用户登录之后5分钟给用户做分类推送: 用户多少天未登录给用户做召回推送: 定期检查用户当前退款账单是否被商家处理等等场景. 一般这种场景和定时任务还是有很大的区别,定时任务是你知道任务多久该跑一次或者什么时候只跑一次,这个时间是确定的.延迟队列是当某个事件发生的时候需要延迟多久触发配套事件,引子事件发生的时间不是固定的. 业界目前也有很多实现方案,单机版的方案就不说了,现在也没有哪个公司还是单机版的服务,今天我们一一探讨各种方案的大致实现
-
PHP如何通过带尾指针的链表实现'队列'
这篇文章是展示通过 PHP 语言实现一种带 尾指针 的链表,然后通过链表来实现队列,其中链表的头元素 head 是用于列队 出队 的,它的时间复杂度 O(1) ,若在 head 的基础上实现链表尾部 入队 时间度为 O(n),为了降低入队操作的时间复杂度,可以给链表维护一个带有尾指针的变量 tail ,这样每次入队的时候直接操作 tail ,出队的时候直接操作 head ,这样可以使得 入队 和 出队 时间复杂度都是 O(1). 1.output_queue_by_liked_list.php
-
SpringBoot集成Redis实现消息队列的方法
list 原理说明 Redis 的 list 是按照插入顺序排序的字符串链表. 如图所示,可以通过 lpush 和 rpop 或者 rpush 和 lpop 实现消息队列. 1 lpush 和 rpop 2 rpush 和 lpop 消息队列功能实现 引入 Redis 依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data
-
Linux C++ 使用condition实现阻塞队列的方法
实例如下: /* * BlockingQueue.h * * Created on: 2014年6月10日 * Author: */ #ifndef BLOCKINGQUEUE_H_ #define BLOCKINGQUEUE_H_ #include <iostream> #include <pthread.h> using namespace std; //template <typename T > class BlockingQueue { public: Blo
-
Java数据结构之双端链表原理与实现方法
本文实例讲述了Java数据结构之双端链表原理与实现方法.分享给大家供大家参考,具体如下: 一.概述: 1.什么时双端链表: 链表中保持这对最后一个连点引用的链表 2.从头部插入 要对链表进行判断,如果为空则设置尾节点为新添加的节点 3.从尾部进行插入 如果链表为空,则直接设置头节点为新添加的节点,否则设置尾节点的后一个节点为新添加的节点 4.从头部删除 判断节点是否有下个节点,如果没有则设置节点为null 二.具体实现 /** * @描述 头尾相接的链表 * @项目名称 Java_DataStr
-
python实现堆栈与队列的方法
本文实例讲述了python实现堆栈与队列的方法.分享给大家供大家参考.具体分析如下: 1.python实现堆栈,可先将Stack类写入文件stack.py,在其它程序文件中使用from stack import Stack,然后就可以使用堆栈了. stack.py的程序: 复制代码 代码如下: class Stack(): def __init__(self,size): self.size=size; self.stack=[];
随机推荐
- .net core如何使用Redis发布订阅
- JS关闭窗口与JS关闭页面的几种方法小结
- Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
- 用vbs找到映射到共享的所有驱动器并重新映射它们
- JScript中的'var'定义变量的作用域
- 搭建Vim为自定义的PHP开发工具的一些技巧
- C# WinForm窗口最小化到系统托盘
- C++中用两个标准容器stack,实现一个队列的方法详解
- Android自定义View实现简单的圆形Progress效果
- 自用mysql自带命令实现数据库备份还原的方法
- php中关于长度计算容易混淆的问题分析
- 微信小程序中post方法与get方法的封装
- Ruby中对一元操作符重载实例
- 简单触发器的使用 献给SQL初学者
- 优化RequireJS项目的相关技巧总结
- 详解idea打包jar的多种方式
- 利用boost获取时间并格式化的方法
- 跳过Windows系统自动登录
- Java编程中避免equals方法的隐藏陷阱介绍
- 使用vue-cli+webpack搭建vue开发环境的方法