C#中的泛型链表的实现
来源:互联网 发布:update例子 mysql 编辑:程序博客网 时间:2024/05/30 04:29
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Collections;
- namespace 泛型
- {
- //简单链表的实现,单向(泛型)
- class 泛型类
- {
- public static void Main()
- {
- LinkedList<string> list = new LinkedList<string>();
- list.AddLast("500");
- list.AddLast("400");
- list.AddLast("300");
- list.AddLast("200");
- //使用泛型版的IEnumerable时,foreach也是类型安全的,些时不可能写 string之外的类型
- foreach (string i in list)
- {
- Console.WriteLine(i);
- }
- Console.ReadLine();
- }
- }
- ////泛型类的定义与一般类相似,只要使用泛型类型声明,之后,这个类型就可以做为一个字段成员,或者参数类型。
- class LinkedListNode<T>
- {
- //项目值
- private T value;
- private LinkedListNode<T> next;
- private LinkedListNode<T> prev;
- public LinkedListNode(T value)
- {
- this.value = value;
- }
- public T Value
- {
- //只读属性
- get
- {
- return this.value;
- }
- }
- //下一个
- public LinkedListNode<T> Next
- {
- get { return next; }
- set { next = value; }
- }
- //上一个
- public LinkedListNode<T> Prev
- {
- get { return prev; }
- set { prev = value; }
- }
- }
- class LinkedList<T> : IEnumerable<T>
- {
- //第一个
- private LinkedListNode<T> first;
- internal LinkedListNode<T> First
- {
- get { return first; }
- set { first = value; }
- }
- //最后一个
- private LinkedListNode<T> last;
- internal LinkedListNode<T> Last
- {
- get { return last; }
- set { last = value; }
- }
- //从后面插入
- public LinkedListNode<T> AddLast(T node)
- {
- LinkedListNode<T> newNode = new LinkedListNode<T>(node);
- if (first == null)
- {
- //Last的引用一直要更新
- first = newNode;
- last = first;
- }
- else
- {
- //把当前最后一个节点的下一个节点的引用 指向新对象
- last.Next = newNode;
- //更新最后一个节点
- last = newNode;
- }
- return newNode;
- }
- public IEnumerator<T> GetEnumerator()
- {
- LinkedListNode<T> current = first;
- while (current != null)
- {
- yield return current.Value;
- //新引用指向下一个节点的地址
- current = current.Next;
- }
- }
- IEnumerator IEnumerable.GetEnumerator()
- {
- return GetEnumerator();
- }
- }
- }
- C#中的泛型链表的实现
- C#中的泛型化方法的实现
- C#中的Singleton实现
- C# 中的memset实现
- c#实现word中的图文恢复(c#实现word中的图文分离的姊妹篇)
- Visual C#2005中的匿名委托的实现
- 电子签章在C#中的一套简单实现的源代码
- C#中的多态现象和多态的多种实现
- C#中的Finalize,Dispose,SuppressFinalize的实现和使用介绍
- 基于C#中的Trace实现一个简单的日志系统
- HuffmanTree的浅析和在C#中的算法实现
- HuffmanTree的浅析和在C#中的算法实现
- C#中的Finalize,Dispose,SuppressFinalize的实现和使用介绍
- c# 多线程实现和获取方法中的对应的地址
- c#中的实现迭代器模式
- 浅谈C#中的实现继承
- C#中的MD5实现函数
- C#中的委托实现租房
- U盘背景设置
- UDP Sample(CS)
- JDK1.6下载
- SMS C语言的代码
- SOA采用率缘何下降?
- C#中的泛型链表的实现
- 关于接口的知识要点和例子
- 更改英文版火狐为中文界面
- sqlplus
- C#基础系列(2)-- 第一部分 基础数据类型与操作 -- 位运算(2)
- 浅谈Object Pascal的指针(转载)
- C#基础系列(3)-- 第一部分 基础数据类型与操作 -- 位运算(3)
- ErlIDE的ISO-8859-1编码问题
- ADSL+交换机实现2台电脑共享上网或各自拨号上网