示例#1
0
        public void Remove(T item)
        {
            DoubleLinkedListIterator p = FindPrevious(item);

            if (p.Current != null)
            {
                p.Current.Next = p.Current.Next.Next;
            }
        }
示例#2
0
        /// <summary>
        /// Insert after previousNode
        /// </summary>
        /// <param name="item">Data for the node iserted.</param>
        /// <param name="p">Location after which the item and node should be located.</param>
        public void Insert(T item, DoubleLinkedListIterator p)
        {
            if (item != null && p != null)
            {
                DoubleLinkedNode newNode = new DoubleLinkedNode();
                newNode.Data = item;

                p.Current.Next = newNode;
                Tail.Previous  = newNode;

                newNode.Next     = Tail;
                newNode.Previous = p.Current;
            }
        }
示例#3
0
        public override string ToString()
        {
            string str = "[";

            if (!IsEmpty())
            {
                DoubleLinkedListIterator itr = First();
                for (; itr.IsValid() && itr.Current != Tail; itr.Advance())
                {
                    str += itr.Retrieve().ToString() + ",";
                }
            }
            return(str += "]");
        }