数据结构实验 第三单元 队列操作
2015-12-18 12:22
393 查看
namespace Queue { internal class LinkedQueue { class Node { public object data; public Node next; } //他们均指向节点,不存数据 Node front, rear; int length = 0; public LinkedQueue() { Initial(); } public LinkedQueue(IEnumerable source) { Initial(); foreach (var ele in source) { Push(ele); } } /// <summary> /// 初始化队列 /// </summary> public void Initial() { front = new Node(); rear = new Node(); front.data = null; front.next = null; rear.data = null; rear.next = null; length = 0; } /// <summary> /// 置队空 /// </summary> public void Clear() { front.next = null; length = 0; } /// <summary> /// 判队空 /// </summary> /// <returns></returns> public Boolean Empty() { return front.next == null; } /// <summary> /// 入队 /// </summary> /// <param name="obj"></param> /// <returns></returns> public Boolean Push(object obj) { Node node = new Node(); node.data = obj; node.next = null; if (Empty()) { front.next = node; rear.next = node; } else { Node last = rear.next; last.next = node; rear.next = node; } length++; return true; } /// <summary> /// 出队 /// </summary> /// <returns></returns> public object Pop() { Node first = front.next; front.next = first.next; if (object.ReferenceEquals(first,rear.next)) { //最后一个元素了 rear.next = null; } length--; return first.data; } /// <summary> /// 取队头元素 /// </summary> /// <returns></returns> public object Front() { return front.data; } /// <summary> /// 取队尾元素 /// </summary> /// <returns></returns> public object Rear() { return rear.data; } public List<object> ToList() { List<object> list = new List<object>(); Node node = front.next; while (node != null) { list.Add(node.data); node = node.next; } return list; } public int Length { get { return length; } } } }
相关文章推荐
- 数据结构实验 第三单元 二进制转换
- 数据结构实验 第二单元 构造计算器
- 数据结构实验 第二单元 构造计算器
- 数据结构实验 第二单元 汉诺塔(非递归,用栈模拟递归)
- 数据结构实验 第二单元 汉诺塔(非递归,用栈模拟递归)
- 数据结构实验 第二单元 括号匹配
- 数据结构实验 第二单元 括号匹配
- 数据结构实验 第二单元 栈操作
- 数据结构实验 第二单元 栈操作
- 数据结构之插入排序
- <LeetCode OJ> 8. String to Integer (atoi)
- 数据结构实验之查找六:顺序查找
- <LeetCode OJ> 148. Sort List
- 学期末数据结构教程总结
- 数据结构总结
- 数据结构实践——用哈希法组织关键字
- 数据结构实践——用哈希法组织关键字
- 本学期数据结构学习总结
- 数据结构实践——验证算法
- 数据结构期末总结