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# 集合、字典、栈和队列的更多相关文章

  1. 用LinkedList集合演示栈和队列的操作

    在数据结构中,栈和队列是两种重要的线性数据结构.它们的主要不同在于:栈中存储的元素,是先进后出:队列中存储的元素是先进先出.我们接下来通过LinkedList集合来演示栈和队列的操作. import ...

  2. LinkedList集合 实现栈和队列

    LinkedList集合的底层是链表结构实现的,所以可以模拟栈(先进后出)和队列(先进先出). 方法: addFirst() //添加元素到列表的起始位置 addLast() //添加元素到列表的结束 ...

  3. java集合详解(附栈,队列)

    1 集合 1.1 为什么会出现集合框架 [1] 之前的数组作为容器时,不能自动拓容 [2] 数值在进行添加和删除操作时,需要开发者自己实现添加和删除. 1.2 Collection接口 1.2.1 C ...

  4. 集合第七发练习之利用ArrayList做栈、队列

    栈:后进先出. 队列:先进先出. 利用这个核心思想,结合集合的add和remove方法做的栈和队列如下代码所示: 主类(t1()和t2()分别演栈和队列):   package cn.hncu.myS ...

  5. Collection集合重难点梳理,增强for注意事项和三种遍历的应用场景,栈和队列特点,数组和链表特点,ArrayList源码解析, LinkedList-源码解析

    重难点梳理 使用到的新单词: 1.collection[kəˈlekʃn] 聚集 2.empty[ˈempti] 空的 3.clear[klɪə(r)] 清除 4.iterator 迭代器 学习目标: ...

  6. 集合类——集合输出、栈和队列及Collections集合

    1.集合输出 在之前我们利用了toString()及get()方法对集合进行了输出,其实那都不是集合的标准输出,集合输出有四种方式:Iterator.ListIterator.Enumeration. ...

  7. 数据结构和算法(Golang实现)(14)常见数据结构-栈和队列

    栈和队列 一.栈 Stack 和队列 Queue 我们日常生活中,都需要将物品排列,或者安排事情的先后顺序.更通俗地讲,我们买东西时,人太多的情况下,我们要排队,排队也有先后顺序,有些人早了点来,排完 ...

  8. 学习javascript数据结构(一)——栈和队列

    前言 只要你不计较得失,人生还有什么不能想法子克服的. 原文地址:学习javascript数据结构(一)--栈和队列 博主博客地址:Damonare的个人博客 几乎所有的编程语言都原生支持数组类型,因 ...

  9. 用JS描述的数据结构及算法表示——栈和队列(基础版)

    前言:找了上课时数据结构的教程来看,但是用的语言是c++,所以具体实现在网上搜大神的博客来看,我看到的大神们的博客都写得特别好,不止讲了最基本的思想和算法实现,更多的是侧重于实例运用,一边看一边在心里 ...

  10. 《数据结构与算法分析:C语言描述_原书第二版》CH3表、栈和队列_reading notes

    表.栈和队列是最简单和最基本的三种数据结构.基本上,每一个有意义的程序都将明晰地至少使用一种这样的数据结构,比如栈在程序中总是要间接地用到,不管你在程序中是否做了声明. 本章学习重点: 理解抽象数据类 ...

随机推荐

  1. SSL/TLS Server supports TLSv1.0

    远程登录服务器后打开注册表编辑器,点开HKEY-LOCAL-MACHINE,SYSTEM,CURRENTCONTROLSET下的Control 找到SecurityProviders下的SCHANNE ...

  2. 2.34 jquery定位

    2.34 jquery定位(简直逆天) 前言元素定位可以说是学自动化的小伙伴遇到的一道门槛,学会了定位也就打通了任督二脉,前面分享过selenium的18般武艺,再加上五种js的定位大法.这些还不够的 ...

  3. Quorum算法

    分布式系统中,一般保存多个数据副本,明显可以提高系统可靠性.并且存储这些数据副本的节点,不仅做容灾用,也可以提供服务,作负载均衡. 这里就涉及到一个数据一致性的问题,也就是各副本间要进行同步,来保持最 ...

  4. 处理tcp里的粘包问题

    typedef struct _CONN_BUFFER { uint8_t buffer[CONN_BUFFER_LENGTH]; uint32_t tail; uint64_t id; time_t ...

  5. 【leetcode】53-MaximumSubarray

    problem MaximumSubarray code class Solution { public: int maxSubArray(vector<int>& nums) { ...

  6. Linux命令学习之路——变更工作目录:cd

    使用权限:所有角色 使用方式:cd [ targetDir ] 作用:该命令用于在Linux中切换工作目录 注意点: 1.targetDir代表目标目录,可以采用绝对路径或相对路径表示: 2.当tar ...

  7. CodeForces - 441D: Valera and Swaps(置换群)

    A permutation p of length n is a sequence of distinct integers p1, p2, ..., pn (1 ≤ pi ≤ n). A permu ...

  8. P2279 消防局的设立(贪心+dp)

    题目链接:传送门 题目大意: 给定一棵树(N个基地N-1条边): 用半径为2的消防局覆盖这N个基地,问最小的消防局数量. (树上距离为k的最小覆盖问题) 思路: 每次贪心地找到不被覆盖的最深的一个节点 ...

  9. PowerDesigner15 增加Domain域

    第一步: 第二步: 点击此按钮,在弹出框中对Domain域打钩即可

  10. ACM-ICPC 2018 沈阳赛区网络预赛-K:Supreme Number

    Supreme Number A prime number (or a prime) is a natural number greater than 11 that cannot be formed ...