C#实现双向链表
2013-03-31 23:30
387 查看
一、定义
双向链表是链表的一种,它的每个数据节点都有2个指针,分别指向直接前驱和直接后序。所以,从双向链表中的任意一个节点开始,都可以很方便的访问它的前驱节点和后继结点。Test Code
static void Main(string[] args) { Console.WriteLine("-------------------------------------"); Console.WriteLine("双链表测试开始..."); DbLinkedList<String> dblink = new DbLinkedList<string>(); DbNode<String> head = new DbNode<string>("x"); dblink.Head = head; dblink.AddBefore("w", 0); dblink.AddBefore("v", 0); dblink.AddLast("y"); int count = dblink.Count(); dblink.AddBefore("z", count); Console.WriteLine(count); string result = dblink.ToString(); Console.WriteLine(result); //dblink.Print(); int position = dblink.IndexOf("z"); Console.WriteLine("z在list中的第{0}位", position); Console.WriteLine("在list中第0个元素是:{0}",dblink[0]); Console.WriteLine("在list中第3个元素是:{0}", dblink[2]); string item = dblink.RemoveAt(2); Console.WriteLine("删除了list中的第2个元素:{0}", item); Console.WriteLine(dblink.ToString()); dblink.AddBefore("x", 2); Console.WriteLine(dblink.ToString()); Console.WriteLine("list中第2个元素是:{0}",dblink.GetItemAt(2)); Console.WriteLine(dblink.ToString()); //反转 Console.WriteLine("-------链表反转--------"); dblink.Reverse(); Console.WriteLine(dblink.ToString()); dblink.AddAfter("1", 0); dblink.AddAfter("2", 1); dblink.AddAfter("6", 6); dblink.AddAfter("8", 7); dblink.AddAfter("A", 10);//position error. Console.WriteLine(dblink.ToString()); string tail = dblink.GetItemAt(dblink.Count() - 1); Console.WriteLine("结尾的元素是:{0}", tail); Console.WriteLine(dblink.ReverseByPrev()); Console.WriteLine("链表是:{0}", dblink.ToString()); Console.WriteLine("---链表中的第一个节点是:{0}", dblink[0]); Console.WriteLine("---链表中的最后一个节点是:{0}", dblink[dblink.Count() - 1]); Console.WriteLine("---First():{0}", dblink.Fisrt()); Console.WriteLine("---Last():{0}", dblink.Last()); }
相关文章推荐
- C#双向链表LinkedList排序实现方法
- 数据结构课程设计-----用C#实现双向链表
- 冒泡算法、二叉搜索树转双向链表、字符串第一个只出现一次字符C#实现
- C#实现双向链表
- C#实现双向链表
- 二元查找树转变成排序的双向链表之C#算法实现
- 数据结构课程设计-----用C#实现双向链表
- 二元查找树转变成排序的双向链表之C#算法实现
- C#实现双向链表
- 双向链表的C++实现
- 用C#实现单链表(merge两个有序单链表)
- PHP实现双向链表、栈
- C++ List 双向链表 实现 会用也要会写
- OC中双向链表的实现
- C语言实现双向链表(DoublyLinkedList)
- 队列实现 (双向循环链表 C++)
- Java简单双向链表实现 @version 1.0
- C++ 构造双向链表的实现代码
- C#双向链表的插入排序
- C#实现基于链表的内存记事本实例