以前写的 C# 队列 结点 /**/ /// <summary> /// 队列节点 /// </summary> /// <typeparam name="T">队列节点保存的对象</typeparam> internal class TCQueueNode < T > ... { //init public TCQueueNode() ...{ } private T nodeValue = default(T); //节点对象 private TCQueueNode<T> nextNode = null; // 节点对应的下一节点地址 /**//// <summary> /// 节点对应的下一节点地址 /// </summary> internal TCQueueNode<T> NextNode ...{ get ...{ return nextNode; } set ...{ nextNode = value; } } /**//// <summary> /// 节点的值 /// </summary> internal T NodeValue ...{ get ...{ return nodeValue; } set ...{ nodeValue = value; } } } 队列 /**/ /// <summary> /// 队列类 /// </summary> /// <typeparam name="T">队列结点保存的对象</typeparam> public class TCQueue < T > ... { /**//// <summary> /// 队列类 构造函数 /// </summary> public TCQueue() ...{ } private int queueLength = 0; //队列长度 private TCQueueNode<T> FirstNode = null; //队列头 private TCQueueNode<T> LastNode = null; //队列尾 /**//// <summary> /// 队列长度 /// </summary> public int QueueLength ...{ get ...{ return queueLength; } } /**//// <summary> /// 入队 /// </summary> /// <param name="NodeValue">对象</param> public void Enqueue(T NodeValue) ...{ TCQueueNode<T> QueueNode = new TCQueueNode<T>(); //初始化一个队列结点 QueueNode.NodeValue = NodeValue; //赋值 if(FirstNode==null) FirstNode = QueueNode; //队列头为null时,设置队列头 if (LastNode != null) LastNode.NextNode = QueueNode; //入队 LastNode = QueueNode; //队尾后排 this.queueLength++; //队列长度+1 } /**//// <summary> /// 出队 /// </summary> /// <returns>对象</returns> public T Dequeue() ...{ if (FirstNode == null) return default (T); TCQueueNode <T> tmpNode = FirstNode; T reStr = tmpNode.NodeValue; FirstNode = FirstNode.NextNode; this.queueLength--; tmpNode = null; return reStr; } }