示例#1
0
文件: Program.cs 项目: Miltt/Console
        public void AddFirst(string data)
        {
            Node tmpNode = null;

            if (firstNode != null)
            {
                tmpNode = firstNode;
            }

            firstNode = new Node();
            firstNode.Data = data;
            firstNode.Previous = null;
            firstNode.Next = tmpNode;            

            if (tmpNode != null)
            {
                tmpNode.Previous = firstNode;
            }

            if (length == 0)
            {
                lastNode = firstNode;
            }

            length++;            
        }
示例#2
0
文件: Stack.cs 项目: CuriousP/C-Sharp
        int Pop()
        {
            if(top != null)
            {
                int item = this.top.data;
                top = top.next;

                return item;
            }

            return -1;
        }
 public void Insert(string inputString, int insertPosition)
 {
     char[] inputArray = inputString.ToCharArray();
     int total = inputArray.Count();
     Node current = head;
     for (int index = 0; index < total; index++)
     {
         for (int count = 0; count < insertPosition; count++)
         {
             current = current.next;
         }
         Node newNode = new Node();
         newNode.next = current.next;
         //Console.WriteLine(inputArray[index]);
         newNode.data = inputArray[index];
         current.next = newNode;
     }
     current.data = inputArray[0];
 }
示例#4
0
文件: Program.cs 项目: Miltt/Console
        public void AddLast(string data)
        {
            Node tmpNode = null;

            if (lastNode != null)
            {
                tmpNode = lastNode;
            }

            lastNode = new Node();
            lastNode.Data = data;
            lastNode.Previous = tmpNode;
            lastNode.Next = null;

            if (tmpNode != null)
            {
                tmpNode.Next = lastNode;
            }

            if (length == 0)
            {
                firstNode = lastNode;
            }

            length++;
        }
示例#5
0
文件: Program.cs 项目: Miltt/Console
        public void Reverse()
        {
            Node current = firstNode;

            while (current != null)
            {
                Node temp = current.Next;

                current.Next = current.Previous;
                current.Previous = temp;

                current = temp;
            }

            current = lastNode;
            lastNode = firstNode;
            firstNode = current;
        }
示例#6
0
文件: Program.cs 项目: Miltt/Console
        public void Remove(Node node)
        {
            if (node == null)
            {
                new Exception("Node is null");
            }

            if (node == firstNode)
            {                
                firstNode = node.Next;
                firstNode.Previous = null;                
            }
            else if (node == lastNode)
            {
                lastNode = node.Previous;
                lastNode.Next = null;                
            }
            else
            {
                node.Previous.Next = node.Next;
                node.Next.Previous = node.Previous;                
            }

            node = null;

            length--;
        }
示例#7
0
文件: Program.cs 项目: Miltt/Console
        public Node AddBefore(Node node, string data)
        {
            if (node == null)
            {
                new Exception("Node is null");
            }

            Node newNode = new Node();
            newNode.Data = data;
            newNode.Previous = node.Previous;
            newNode.Next = node;

            node.Previous.Next = newNode;
            node.Previous = newNode;

            length++;

            return newNode;
        }
示例#8
0
文件: Stack.cs 项目: CuriousP/C-Sharp
 void Push(int item)
 {
     Node t = new Node(item);
     t.next = top;
     top = t;
 }
 public CustomLinkedListString(string stringInput)
 {
     head = new Node();
     mainInput = stringInput;
     CreateList(mainInput, 0);
 }