队列Queue FIFO先进先出 栈Stack FILO先进后出

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //队列的特点就是先进先出
            Queue<string> queue = new Queue<string>();
            queue.Enqueue("张三");   //入队  将对象添加到 System.Collections.Generic.Queue<T> 的结尾处。
            queue.Enqueue("李四");
            queue.Enqueue("王五");

            int queueCount = queue.Count(); //返回序列中元素的数量

            string name = queue.Dequeue(); //出队 把队首的元素移除,并将这移除的元素返回。
            Console.WriteLine(name); //输出“张三” 

            name = queue.Dequeue(); //因为“张三”已经被移除了。所以现在是“李四”是在队首了
            Console.WriteLine(name); //输出“李四”

            name = queue.Dequeue(); //因为“李四”也被移除了,所以队列中就只剩下王五了。
            Console.WriteLine(name); //输出“王五”

            //------------------------------------------------------------

            //栈的特点就是先进后出(了解下就可以了,用的不多)
            Stack<string> stack = new Stack<string>();
            stack.Push("张三"); //入栈, 将对象插入 System.Collections.Generic.Stack<T> 的顶部。
            stack.Push("李四");
            stack.Push("王五");

            int stackCount= stack.Count(); //返回栈中的数量
            string name1 = stack.Pop(); //出栈。把栈首的元素移除,并将移除的元素返回。
            Console.WriteLine(name); //输出:“王五”

            name1 = stack.Pop();
            Console.WriteLine(name1);//输出:“李四”

            name1 = stack.Pop();
            Console.WriteLine(name1);//输出:“张三”

            //name1 = stack.Peek(); //这是返回栈首的对象,但是不将它移除
            Console.ReadKey();

        }
    }
}

  

时间: 2024-10-12 12:29:40

队列Queue FIFO先进先出 栈Stack FILO先进后出的相关文章

Python 单向队列Queue模块详解

单向队列Queue,先进先出 '''A multi-producer, multi-consumer queue.''' try: import threading except ImportError: import dummy_threading as threading from collections import deque from heapq import heappush, heappop from time import monotonic as time __all__ =

C++实现单链表和子类栈(Stack)及单向队列(Queue)

刚刚开始学习c++.之前c的内容掌握的也不多,基本只是一本概论课的程度,以前使用c的struct写过的链表.用python写过简单的数据结构,就试着把两者用c++写出来,也是对c++的class,以及继承中的public/protected/private的性质进行初步了解.第一次写头文件.h和源文件.cpp分开的c++代码.过程中参考了ProLyn和kgvito的代码,基本就是百度"单链表 c++"的前几个搜索结果. 节点listNode还是用struct来写了,因为我想节点除了构造

队列 (Queue) 与 栈 (Stack)

队列 (Queue)                                                                                                                                                                                                       队列(Queue)代表了一个先进先出的对象集合.当您需要对各项进行先进先出的访问时

数据结构之——链表(list)、队列(queue)和栈(stack)

在前面几篇博文中曾经提到链表(list).队列(queue)和(stack),为了更加系统化,这里统一介绍着三种数据结构及相应实现. 1)链表 首先回想一下基本的数据类型,当需要存储多个相同类型的数据时,优先使用数组.数组可以通过下标直接访问(即随机访问),正是由于这个优点,数组无法动态添加或删除其中的元素,而链表弥补了这种缺陷.首先看一下C风格的单链表节点声明: 1 typedef struct _ListNode{ 2 int val; 3 struct _ListNode *next; 4

用结点实现链表LinkedList,用数组和结点实现栈Stack,用数组和结点链表实现队列Queue

一,用结点实现链表LinkedList,不用换JavaAPI的集合框架 import java.util.Scanner; public class Main { public static class Node { int data; Node next=null; public Node(int data){this.data=data;}; } public static class MyLinkedList { Node head=null; public MyLinkedList()

利用栈Stack实现队列(Queue)

实现说明: 入队时,将元素压入s1; 出队时,判断s2是否为空,如不为空,则直接弹出顶元素:如为空,则将s1的元素逐个"倒入"s2,把最后一个元素弹出并出队; 这个思路,避免了反复"倒"栈,仅在需要时才"倒"一次. package com.knowledgeStudy.threadLocal; import java.util.Stack; public class MyQueue { Stack<Object> s1 = new S

java集合框架:浅谈如何使用LInkedList实现队列(Queue)和堆栈(Stack)

Java中的LinkedList?是采用双向循环列表实现的.利用LinkedList?可以实现栈(stack).队列(queue) 下面写两个例子学生类:int stuId; public int getStuId() { return stuId; } public void setStuId(int stuId) { this.stuId = stuId; } public String getStuName() { return stuName; } public void setStuN

STL--容器适配器(queue、priority_queue、stack)

适配器(Adaptor)是提供接口映射的模板类.适配器基于其他类来实现新的功能,成员函数可以被添加.隐藏,也可合并以得到新的功能. STL提供了三个容器适配器:queue.priority_queue.stack. 这些适配器都是包装了vector.list.deque中某个顺序容器的包装器.注意:适配器没有提供迭代器,也不能同时插入或删除多个元素. 本文地址:http://www.cnblogs.com/archimedes/p/cpp-adapter.html,转载请注明源地址. 队列(qu

每日一问2:堆(heap)和栈(stack)的区别

因为这里没有明确指出堆是指数据结构还是存储方式,所以两个尝试都回答一下. 一.堆和栈作为数据结构 1.堆(heap),也叫做优先队列(priority queue),队列中允许的操作是先进先出(FIFO),在队尾插入元素,在队头取出元素.而堆也是一样,在堆底插入元素,在堆顶取出元素,但是堆中元素的排列不是按照到来的先后顺序,而是按照一定的优先顺序排列的.这个优先顺序可以是元素的大小或者其他规则. 2.栈(stack),是一种运算受限的线性表,栈中允许的操作时先进后出(FILO),在栈顶插入元素,