c#中的栈(stack)与队列(queue)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace StackAndQueue
{
class Program
{
static void Main(string[] args)
{
//栈是先进后出
Stack<string> fruits=new Stack<string>(); //元素入栈用push,就是向栈中添加元素
fruits.Push("Apple");
fruits.Push("pear");
fruits.Push("grape");
fruits.Push("watermelon"); //获取stack 中的元素个数
int num = fruits.Count(); //pop出栈,返回最最后入栈的元素并删除栈中的元素
string s1 = fruits.Pop(); //Peek返回最后入栈的元素,不删除栈中的元素
string s2 = fruits.Peek(); //清空栈中元素
fruits.Clear(); //队列与栈不同,遵循先进先出的原则
Queue<string> name = new Queue<string> ( ); //入队列,向队列中添加元素
name.Enqueue ("一" );
name.Enqueue ("二");
name.Enqueue ("三" );
name.Enqueue ( "四"); //获取队列中的元素个数
int a=name.Count ( ); //判断指定元素是否包含在队列中
bool b=name.Contains ("三"); //出队列,使用Dequeue出队列会获取队列中最下方的元素,也就是先进入的元素,然后删除队列中的该元素
string str1= name.Dequeue ( ); //使用peek 出队列,只会讲最下方的元素获取,不会将元素从队列中删除
string str2=name.Peek ( ); //清空队列
name.Clear ( );
}
}
}
c#中的栈(stack)与队列(queue)的更多相关文章
- STL学习笔记6 -- 栈stack 、队列queue 和优先级priority_queue 三者比较
栈stack .队列queue 和优先级priority_queue 三者比较 默认下stack 和queue 基于deque 容器实现,priority_queue 则基于vector 容器实现 ...
- python基本数据结构栈stack和队列queue
1,栈,后进先出,多用于反转 Python里面实现栈,就是把list包装成一个类,再添加一些方法作为栈的基本操作. 栈的实现: class Stack(object): #初始化栈为空列表 def _ ...
- C++栈(stack)、队列(queue)、链表(list)的常用函数
C++队列Queue是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构.1.back() 返回一个引用,指向最后一个元素2.empty() 如果队列空则返回真3.front() 返回第一 ...
- 利用栈Stack实现队列(Queue)
实现说明: 入队时,将元素压入s1; 出队时,推断s2是否为空,如不为空,则直接弹出顶元素:如为空.则将s1的元素逐个"倒入"s2.把最后一个元素弹出并出队; 这个思路,避免了重复 ...
- 自定义栈Stack 和 队列Queue
自定义栈 接口 package com.test.custom; public interface IStack<E> { E pop(); void push(E e); E peek( ...
- Java堆(heap)、栈(stack)和队列的区别
Java里面Stack有两种含义: 一:数据结构 Stack,即java.util.Stack import java.util.Stack; import java.util.Iterator; i ...
- 2018.9.5 Java中使用栈来模拟队列
栈的规律是是先进后出 队列的规律是先进先出 栈模拟队列 首先我们定义两个栈,一个放数据,一个出数据,判断B栈是否有元素,有元素则直接pop:没有元素则需要我们将A里面的元素出栈然后放到B里面,再取出, ...
- java中的栈Stack
Stack:栈是一种只能在一端进行插入或删除操作的线性表.(先进后出表) java中的Stack继承Vector 实例化 Stack stack=new Stack(); 基本使用 判断是否为空 st ...
- 面试01:解释内存中的栈(stack)、堆(heap)和方法区(method area)的用法
栈的使用:通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是函数调用的现场保存都使用JVM中的栈空间. 队的使用:通过new关键字和构造器创建的对象则放在堆空间,堆是垃圾收集器管理的主要区域 ...
- java - 解释内存中的栈(stack)、堆(heap)和方法区(method area)的用法
通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是函数调用的现场保存都使用JVM中的栈空间: 而通过new关键字和构造器创建的对象则放在堆空间,堆是垃圾收集器管理的主要区域,由于现在的垃圾收 ...
随机推荐
- CSS-定义样式表
1.HTML标记定义 p{属性:属性值;属性1:属性1} <p>...</p> 注:p可以叫做选择器,定义那个标记中的内容执行其中的样式.一个选择器可以控制若干个样式属性,他们 ...
- 洛谷p1980 计数问题
题目描述 试计算在区间 111 到 nn n的所有整数中,数字x(0≤x≤9) x(0 ≤ x ≤ 9)x(0≤x≤9)共出现了多少次?例如,在 111到11 11 11中,即在 1,2,3,4,5, ...
- jupyter CSS
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- ActiveMQ使用JDBC持久化
步骤一:创建一个数据库 步骤二:配置activemq.xml配置文件 1.在persistenceAdapter加入如下配置 <!--crea ...
- createElement(九)
Vue.js 利用 createElement 方法创建 VNode,它定义在 src/core/vdom/create-elemenet.js 中: // wrapper function for ...
- Codeforces 1295E. Permutation Separation (线段树)
https://codeforces.com/contest/1295/problem/E 建一颗线段树,叶子结点是花费从1到i所需要花费的前缀和,表示前i个元素全部移动到右边的花费,再维护区间最小值 ...
- 161.内置User模型的基本使用
User模型 user模型是这个框架的核心部分,他的完整路径是在django.contrib.auth.models.User.对User对象做一个简单的了解. 字段: 内置的User模型有以下字段: ...
- 修改json数据中key(键值)
//方法一:修改JSONObject的键 public static JSONObject changeJsonObj(JSONObject jsonObj,Map<String, String ...
- LED Craft Light - How To Solve: Home Decoration Lighting
Home décor usually comes with a certain period of theme or a specific style of furniture, which will ...
- HTML网站右键禁用F12代码 屏蔽审查元素 防止修改页面代码
<script>//禁止右键 function click(e) { if (document.all) { if (event.button==2||event.button==3) { ...