C# 集合、字典、栈和队列
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) { // 定义可变数据组类型 List<Dog> list = new List<Dog>(); // 添加数组元素 list.Add(new Dog("A")); list.Add(new Dog("B")); list.Add(new Dog("C")); list.Add(new Dog("D")); list.Add(new Dog("E")); list.RemoveAt(); // 删除第二个,1表示的是下标 ; i < list.Count; ++i) { list[i].ShowName(); } } public class Dog { private string Name; public Dog(string name) { Name = name; } public void ShowName() { Console.WriteLine("狗的名字是:" + Name); } } } }
字典的使用形式:
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) { // 字典的定义 Dictionary<string, Dog> dog1 = new Dictionary<string, Dog>(); // 添加形式 dog1.Add("A", new Dog("A")); dog1.Add("B", new Dog("B")); dog1.Add("C", new Dog("C")); dog1.Add("D", new Dog("D")); // 访问形式 dog1["B"].ShowName(); } public class Dog { private string Name; public Dog(string name) { Name = name; } public void ShowName() { Console.WriteLine("狗的名字是:" + Name); } } } }
栈的使用
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) { // 调用栈 Stack<Dog> stack1 = new Stack<Dog>(); // push进栈操作 stack1.Push(new Dog("A")); stack1.Push(new Dog("B")); stack1.Push(new Dog("C")); // peek() 查看当前栈顶元素 stack1.Peek().ShowName(); // 显示"C" // 弹出栈顶指针 stack1.Pop(); // 弹出"C" stack1.Peek().ShowName(); // 此时应该显示"B",因为"C"已经被pop()弹出 } public class Dog { private string Name; public Dog(string name) { Name = name; } public void ShowName() { Console.WriteLine("狗的名字是:" + Name); } } } }
队列的使用:
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<Dog> dog1 = new Queue<Dog>(); // 进队操作 dog1.Enqueue(new Dog("A")); dog1.Enqueue(new Dog("B")); dog1.Enqueue(new Dog("C")); // 出队列操作 dog1.Dequeue().ShowName(); // 先进先出,所以弹出的是"A" } public class Dog { private string Name; public Dog(string name) { Name = name; } public void ShowName() { Console.WriteLine("狗的名字是:" + Name); } } } }
C# 集合、字典、栈和队列的更多相关文章
- 用LinkedList集合演示栈和队列的操作
在数据结构中,栈和队列是两种重要的线性数据结构.它们的主要不同在于:栈中存储的元素,是先进后出:队列中存储的元素是先进先出.我们接下来通过LinkedList集合来演示栈和队列的操作. import ...
- LinkedList集合 实现栈和队列
LinkedList集合的底层是链表结构实现的,所以可以模拟栈(先进后出)和队列(先进先出). 方法: addFirst() //添加元素到列表的起始位置 addLast() //添加元素到列表的结束 ...
- java集合详解(附栈,队列)
1 集合 1.1 为什么会出现集合框架 [1] 之前的数组作为容器时,不能自动拓容 [2] 数值在进行添加和删除操作时,需要开发者自己实现添加和删除. 1.2 Collection接口 1.2.1 C ...
- 集合第七发练习之利用ArrayList做栈、队列
栈:后进先出. 队列:先进先出. 利用这个核心思想,结合集合的add和remove方法做的栈和队列如下代码所示: 主类(t1()和t2()分别演栈和队列): package cn.hncu.myS ...
- Collection集合重难点梳理,增强for注意事项和三种遍历的应用场景,栈和队列特点,数组和链表特点,ArrayList源码解析, LinkedList-源码解析
重难点梳理 使用到的新单词: 1.collection[kəˈlekʃn] 聚集 2.empty[ˈempti] 空的 3.clear[klɪə(r)] 清除 4.iterator 迭代器 学习目标: ...
- 集合类——集合输出、栈和队列及Collections集合
1.集合输出 在之前我们利用了toString()及get()方法对集合进行了输出,其实那都不是集合的标准输出,集合输出有四种方式:Iterator.ListIterator.Enumeration. ...
- 数据结构和算法(Golang实现)(14)常见数据结构-栈和队列
栈和队列 一.栈 Stack 和队列 Queue 我们日常生活中,都需要将物品排列,或者安排事情的先后顺序.更通俗地讲,我们买东西时,人太多的情况下,我们要排队,排队也有先后顺序,有些人早了点来,排完 ...
- 学习javascript数据结构(一)——栈和队列
前言 只要你不计较得失,人生还有什么不能想法子克服的. 原文地址:学习javascript数据结构(一)--栈和队列 博主博客地址:Damonare的个人博客 几乎所有的编程语言都原生支持数组类型,因 ...
- 用JS描述的数据结构及算法表示——栈和队列(基础版)
前言:找了上课时数据结构的教程来看,但是用的语言是c++,所以具体实现在网上搜大神的博客来看,我看到的大神们的博客都写得特别好,不止讲了最基本的思想和算法实现,更多的是侧重于实例运用,一边看一边在心里 ...
- 《数据结构与算法分析:C语言描述_原书第二版》CH3表、栈和队列_reading notes
表.栈和队列是最简单和最基本的三种数据结构.基本上,每一个有意义的程序都将明晰地至少使用一种这样的数据结构,比如栈在程序中总是要间接地用到,不管你在程序中是否做了声明. 本章学习重点: 理解抽象数据类 ...
随机推荐
- crontab的定时任务实例
实例1:每1分钟执行一次myCommand * * * * * myCommand 实例2:每小时的第3和第15分钟执行 3,15 * * * * myCommand 实例3:在上午8点到11点的第3 ...
- Java 面试题 —— java 源码
1. 静态工厂方法 静态工厂方法不必在每次调用它们的时候都创建一个新的对象: Boolean.valueOf(boolean): public final class Boolean { public ...
- Python网络爬虫之requests模块(1)
引入 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃文档 ...
- cetos7最小化安装设置网络启动和更新yum源
1. 使用静态 IP 地址配置网络 你第一件要做的事情就是为你的 CentOS 服务器配置静态 IP 地址.路由以及 DNS.我们会使用 ip 命令代替 ifconfig 命令.当然,ifconfig ...
- 从boost到Adaboost再到GBRT-GBDT-MART
本文是要配合<统计学习方法>才能看懂的,因为中间有些符号和定义是直接使用书本中的 先弄明白以下三个公式: 1)Boost(提升法)=加法模型(即基函数的线性组合)+前向分步算法+损失函数 ...
- Unity 3D-Navigation网格导航系统使用教程
Unity自带导航系统 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创 ...
- lecture2-word2vec-七月在线nlp
离散表示: one-hot bag of words -- 词权重 ~不能表示顺序关系 TF-IDF (Term Frequency - Inverse Document Frequency) [ ...
- 【mybatis源码学习】利用maven插件自动生成mybatis代码
[一]在要生成代码的项目模块的pom.xml文件中添加maven插件 <!--mybatis代码生成器--> <plugin> <groupId>org.mybat ...
- 用setuptools_scm来自动控制Python包的版本
手动管理Python包的版本号一段时间后,寻求自动化的手段,是自然而然的. 手动管理版本 手动管理Python包的版本,需要注意两个方面: 每次发布新包前,要更新包的版本号. 在安装后的默认模块下应该 ...
- controller层,service层,dao层(main函数,子函数,子的子函数)
controller层相当于main函数————————————————————————————————————————————————————@RequestMapping("/query ...