栈:
Stack<int> xt=new Stack<int>() ; 先进后出,后进先出,水杯结构,顺序表类似
常用方法: .pop---->出栈,弹栈
.Push---->压栈,进栈
.peek---->获取栈顶元素
.toArry---->转化数组,遍历 int[] ints= stack.ToArray(); Console.WriteLine(ints[0]); 输出的是栈顶元素,因为先进后出,后进先出;
队列:
Queue<int> queue = new Queue<int>(); 先进先出,后进后出,水管结构,顺序表类似
常用方法: .Dequeue---->移出队头
.Enqueue---->进入队列
.peek---->获取队头元素
.toArry---->转化数组,遍历
笔记:
1).顺序表节省空间;链表浪费空间,但链表方便于删除和增加,能有效利用空间
2).泛型简化
Action 无参泛型,无返回值
Action<> 有参泛型,无返回值
Func<> 有参泛型,有返回值 若参数只有一个,那这个参数就是返回类型,若多个,最后一个参数为返回类型
3).顺序表就是一个数组!!! 只不过数组是被限制的 顺序表是内存地址连续的, 顺序表方便 查询 追加 遍历 ,不适合做删除和插入, 因为会频繁的进行赋值操作 ,顺序表有长度限制
4).链表是由一个个Node组成的, Node里面有两个元素 (data)和(Node的下一个地址) 当Node的.Next为Null的时候,链表到尾部 ,链表是没有长度限制的 ,链表要时刻注意别断链,便于删除和插入
5).链表分为两种{带头链表和不带头的链表 一般都采用带头的 方便管理 }
若将一个数据逆置就采用在头部插入的方式 exp index = 0 头插法 为逆序
若要链表数据和输入数据一致就在用尾部插入法 exp index = length 尾插法 为正序
6).栈和队列都是特殊的线性表(受限线 性表)
顺序栈 顺序队列 原型是顺表
链栈 链队列 原型就是链表