示例#1
0
        public override void Remove(Node node)
        {
            if (stack != null)
            {
                NodeWrapper item = stack;
                while (item.Next != null)
                {
                    if (item.Next.Node == node)
                    {
                        item.Next = item.Next.Next;
                    }
                    else
                    {
                        item = item.Next;
                    }
                }

                if (stack.Node == node)
                {
                    stack = stack.Next;
                }
            }
        }
示例#2
0
 public NodeWrapper(Node node, object data)
 {
     this.node = node;
     this.data = data;
     next      = null;
 }
示例#3
0
 public override void Get(out Node node, out object data)
 {
     node  = stack.Node;
     data  = stack.Data;
     stack = stack.Next;
 }
示例#4
0
        public override void Remove(Node node)
        {
            if (stack != null)
            {
                NodeWrapper item = stack;
                while (item.Next != null)
                {
                    if (item.Next.Node == node)
                        item.Next = item.Next.Next;
                    else
                        item = item.Next;
                }

                if (stack.Node == node)
                    stack = stack.Next;
            }
        }
示例#5
0
 public NodeWrapper(Node node, object data)
 {
     this.node = node;
     this.data = data;
     next = null;
 }
示例#6
0
 public override void Get(out Node node, out object data)
 {
     node = stack.Node;
     data = stack.Data;
     stack = stack.Next;
 }
示例#7
0
 public override void Add(Node node, object data)
 {
     NodeWrapper head = new NodeWrapper(node,data);
     head.Next = stack;
     stack = head;
 }
示例#8
0
        public override void Remove(Node node)
        {
            if (first != null)
            {
                NodeWrapper item = first;
                while (item.Next != null)
                {
                    if (item.Next.Node == node)
                        item.Next = item.Next.Next;
                    else
                        item = item.Next;
                }

                last = item;

                if (first.Node == node)
                {
                    first = first.Next;
                    if (first == null)
                        last = null;
                }
            }
        }
示例#9
0
        public override void Get(out Node node, out object data)
        {
            node = first.Node;
            data = first.Data;

            first = first.Next;
            if (first == null)
                last = null;
        }
示例#10
0
        public override void Add(Node node, object data)
        {
            NodeWrapper tail = new NodeWrapper(node,data);

            if (last == null)
                first = last = tail;
            else
                last = last.Next = tail;
        }