C#数据结构举例

using System;
using System.Collections;
using System.Collections.Generic;


namespace 数据结构处理
{
    class Program
    {
        static void ArrayListOperation()//动态数组操作
        {
            //它基本上可以替代一个数组。但是,与数组不同的是,您可以使用索引在指定的位置添加和移除项目,
            //动态数组会自动重新调整它的大小。它也允许在列表中进行动态内存分配、增加、搜索、排序各项。 
            ArrayList arrayList = new ArrayList();
            arrayList.Add(1);          
        }
        static void ListOperation()
        {
            //泛型的好处: 
            //它为使用c#语言编写面向对象程序增加了极大的效力和灵活性。 
            //不会强行对值类型进行装箱和拆箱,或对引用类型进行向下强制类型转换,性能得到提高。
            List<int> lst = new List<int>(20);
            lst.Add(32);
            var num = lst.Count;
            Console.WriteLine(num);
            lst.RemoveAt(0);
            Console.WriteLine(lst.Count);
        }
        static void SortedListOperation()//有序的键值对集合,内部存储用数组存储 
        {            
            SortedList<int,string> lst = new SortedList<int,string>();
            lst.Add(3,"逆战");
            lst.Add(1, "王牌");
            foreach(var item in lst)
            {
                Console.WriteLine(item);
            }
        }
        static void LinkedListOperation()//双向链表 里面每个元素都是一个LinkedListNode
        {
            LinkedList<string> listlink = new LinkedList<string>();
            LinkedListNode<string> mode1 = new LinkedListNode<string>("张三");
            listlink.AddFirst(mode1);
            LinkedListNode<string> mode2 = new LinkedListNode<string>("李四");
            listlink.AddAfter(mode1, mode2);
            foreach(var item in listlink)
            {
                Console.WriteLine(item);
            }
        }
        static void StackOperation()
        {
            Stack<int> stack = new Stack<int>();
            stack.Push(78);
            Console.WriteLine(stack.Peek());
        }

        static void QueueOperation()
        {
            Queue<char> q = new Queue<char>();
            q.Enqueue('a');
            q.Enqueue('b');
            Console.WriteLine(q.Peek());//先
//            Console.WriteLine(q.Dequeue());
//            Console.WriteLine("剩下的是");
//;            Console.WriteLine(q.Peek());
        }

        static void DictionaryOperation()
        {   //值可以重复,键都必须是唯一的,键不能为空引用null(VB中的Nothing),若值为引用类型,则可以为空值  
        
            Dictionary<int, string> dict = new Dictionary<int, string>();
            dict.Add(11, "孙悟空");
            dict.Add(2, "李白");
            foreach (var item in dict)
            {
                Console.WriteLine(item);
            }
        }
        static void SortedDictionaryOperation()
        {   //值可以重复,键都必须是唯一的,键不能为空引用null(VB中的Nothing),若值为引用类型,则可以为空值  

            SortedDictionary<int, string> dict = new SortedDictionary<int, string>();
            dict.Add(11, "孙悟空");
            dict.Add(2, "李白");
            foreach(var item in dict)
            {
                Console.WriteLine(item);
            }
        }
        static void Main(string[] args)
        {
            SortedListOperation();
        }
    }
}

更多参考资料:
c#常用数据结构解析
C#数据结构入门(动态数组、泛型列表、字典、栈、队列、双向链表)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

广大菜鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值