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
表.栈和队列是最简单和最基本的三种数据结构.基本上,每一个有意义的程序都将明晰地至少使用一种这样的数据结构,比如栈在程序中总是要间接地用到,不管你在程序中是否做了声明. 本章学习重点: 理解抽象数据类 ...
随机推荐
- 选择器(&伪)/盒模型
一.选择器高级 1.组合选择器: /*群主选择器 : 同时可以控制多个选择器*/ /*#dd,div,#a{}*/ /* d{ 起相同类名 color: red; }*/ 举例: .d1,.d2,.d ...
- Python 数据结构--排序
各种排序的时间复杂度和空间复杂度 以下 冒泡排序,选择排序,插入排序,合并排序,快速排序,希尔排序 1 冒泡排序(Bubble Sort) 冒泡排序(Bubble Sort)是一种简单的排 ...
- IE9中input事件与异步事件连用会发生跨域问题
IE版本中IE8以及IE9以上版本不会存在这个问题唯独IE9 发生跨域问题代码 $("#stock_code").bind("input",function(e ...
- 浅谈generater
一.什么是generater? 1.generater 是一个工具类 2.由mybatis提供的用户生成pojo对象.mapper接口类.mapper映射文件的工具 二.使用generater 1.添 ...
- Java中的List集合和迭代器
一.Java中的List集合. 终于有时间来好好整理一下Java中的集合. 首先要讲的就是List集合.Java中List集合主要将两个: 第一个是底层使用数组维护的ArrayList,第二个是底层是 ...
- [LeetCode&Python] Problem 830. Positions of Large Groups
In a string S of lowercase letters, these letters form consecutive groups of the same character. For ...
- flask表单,orm,csrf
flask表单是flask中最基本的功能. 它是负责HTML页面中数据采集的部分,它由三部分组成:表单标签,表单域,表单按钮组成,通过表单用户输入的数据提交给服务器. flask表单封装了WTForm ...
- NFS相关、NFS服务端安装配置、exportfs命令、nfs客户端的问题
1.NFS (network file system,基于RPC协议) 2.NFS服务端安装配置安装服务端:yum install nfs-utils rpcbind -y安装客户端:yum inst ...
- [codeforces round#475 div2 ][C Alternating Sum ]
http://codeforces.com/contest/964/problem/C 题目大意:给出一个等比序列求和并且mod 1e9+9. 题目分析:等比数列的前n项和公式通过等公比错位相减法可以 ...
- python 常用库及安装使用
#win10 + python3.5.2 #pip install xxx 自动下载的缓存位置: #win7 - c:\用户\(你的用户名)\AppData\Local\pip\cache\ #l ...