コード例 #1
0
 public void Append(Student d)
 {
     Node temp = new Node(d, null);
     temp.link = head;
     head = temp;
     size++;
 }
コード例 #2
0
 public Node Remove()
 {
     Node temp = head;
     if (head != null)
     {
         head = head.link;
         size--;
     }
     return temp;
 }
コード例 #3
0
        // (f)
        public int Min()
        {
            aux = sentinel;
            int min = sentinel.next.value;
            while (aux.next != null)
            {
                if (aux.next.value < min)
                    min = aux.next.value;
                else
                    aux = aux.next;
            }

            return min;
        }
コード例 #4
0
 public void Insert(Student d, int previousKey)
 {
     Node current = Search(previousKey);
     if (current != null)
     {
         Node temp = new Node(d, current.link);
         current.link = temp;
         size++;
     }
     else
     {
         Console.WriteLine("Insert was not successful");
     }
 }
コード例 #5
0
 public void NextToForward(int t)
 {
     if (!IsEmpty())
     {
         aux = sentinel;
         while (aux.next != null)
         {
             if (aux.next.value == t)
             {
                 newNode = aux.next;
                 aux.next = newNode.next;
                 newNode.next = sentinel.next;
                 sentinel.next = newNode;
                 return;
             }
             else
                 aux = aux.next;
         }
     }
 }
コード例 #6
0
 public LinkedList()
 {
     head = null;
     size = 0;
 }
コード例 #7
0
 // (g)
 public void RemoveAt(int index)
 {
     if (!IsEmpty())
     {
         int counter = 0;
         aux = sentinel;
         while (aux.next != null)
         {
             if (counter == index)
             {
                 if (aux.next.next != null)
                 {
                     aux.next = aux.next.next;
                     return;
                 }
                 else
                 {
                     aux.next = null;
                     return;
                 }
             }
             else
             {
                 aux = aux.next;
                 counter++;
             }
         }
     }
 }
コード例 #8
0
 public Node()
 {
     data = null;
     link = null;
 }
コード例 #9
0
 public Node(Student s, Node p)
 {
     data = s;
     link = p;
 }
コード例 #10
0
 // (c)
 public void InsertAfter(int value, int index)
 {
     if (!IsEmpty())
     {
         int counter = 0;
         aux = sentinel;
         while (aux.next != null)
         {
             if (counter == index)
             {
                 newNode = new Node(value, aux.next.next);
                 aux.next.next = newNode;
                 return;
             }
             else {
                 aux = aux.next;
                 counter++;
             }
         }
     }
 }
コード例 #11
0
 // (a)
 public void InsertAfterAll(int value)
 {
     if (!IsEmpty())
     {
         aux = sentinel;
         while (aux.next != null)
         {
             aux = aux.next;
             if (aux.next == null)
             {
                 newNode = new Node(value, null);
                 aux.next = newNode;
                 return;
             }
         }
     }
 }
コード例 #12
0
 public void Insert(int value)
 {
     aux = sentinel;
     newNode = new Node(value, aux.next);
     aux.next = newNode;
 }
コード例 #13
0
ファイル: Node.cs プロジェクト: igoroctaviano/monitoria-aed
 public Node(int valueNode, Node nextNode)
 {
     value = valueNode;
     next = nextNode;
 }
コード例 #14
0
 public void Print()
 {
     aux = sentinel;
     while (aux.next != null)
     {
         Console.Write(" " + aux.next.value);
         aux = aux.next;
     }
 }
コード例 #15
0
 public SinglyLinkedList()
 {
     sentinel = new Node();
     aux = new Node();
     newNode = new Node();
 }
コード例 #16
0
 // (e)
 public int SearchValue(int value)
 {
     aux = sentinel;
     while (aux.next != null)
     {
         if (aux.next.value == value)
             return aux.next.value;
         else
             aux = aux.next;
     }
     return -1;
 }
コード例 #17
0
 public void RemoveAllOcurrences(int value)
 {
     if (!IsEmpty())
     {
         aux = sentinel;
         while (aux.next != null)
         {
             if (aux.next.value == value)
             {
                 if (aux.next.next != null)
                     aux.next = aux.next.next;
                 else
                     aux.next = null;
             }
             else
                 aux = aux.next;
         }
     }
 }
コード例 #18
0
 // (d)
 public void RemoveOdds()
 {
     if (!IsEmpty())
     {
         aux = sentinel;
         while (aux.next != null)
         {
             if (aux.next.value % 2 == 1)
             {
                 if (aux.next.next != null)
                     aux.next = aux.next.next;
                 else
                     aux.next = null;
             }
             else
                 aux = aux.next;
         }
     }
 }
コード例 #19
0
ファイル: Node.cs プロジェクト: igoroctaviano/monitoria-aed
 public Node()
 {
     value = 0;
     next = null;
 }
コード例 #20
0
 // (b)
 public int FindRemoveAndReturn(int value)
 {
     aux = sentinel;
     while (aux.next != null)
     {
         if (aux.next.value == value)
         {
             newNode = aux.next;
             if (aux.next.next != null)
                 aux.next = aux.next.next;
             else
                 aux.next = null;
             return newNode.value;
         }
         else
             aux = aux.next;
     }
     return -1;
 }