Example #1
0
        /// <summary>
        /// Exercícios de lista encadeada:
        /// (a) Recebe um número inteiro e o insere no fim da lista
        /// (b) Retira o primeiro elemento da lista e o retorna
        /// (c) Recebe um valor inteiro (x) que é um elemento da lista
        /// e o uma chave. O método deve inserir o valor da chave após
        /// o elemento x. Verifique se o elemento passado como parâmetro
        /// , x, pertence à lista. Caso nãoo exista, informe ao usuário.
        /// (d) retira todos os elementos cujo campo value é um número
        /// ímpar.
        /// (e) Pesquisa por um determinado elemento da lista. Se o elemento
        /// procurado não existir, informe ao usuário e retorne -1. Caso 
        /// contrário, retorne o valor do elemento.
        /// (f) Procura e retorna o menor elemento da lista.
        /// (g) O método recebe uma posição da lista, índice e retira o elemento
        /// que corresponde à mesma. Seu método deve verificar se o índice é
        /// válido, sem fazer contagem da quantidade de elementos da lista. Retorne
        /// o elemento retirado caso o índice seja válido. Caso contrário retorne -1.
        /// Considere o nó sentinela possuindo o índice 0.
        /// (h) Todos os métodos devem ser implementados e testados.
        /// </summary>
        static void Main(string[] args)
        {
            SinglyLinkedList list = new SinglyLinkedList();
            list.Insert(1);
            list.Insert(2);
            list.Insert(3);
            list.Insert(4);
            list.Insert(5);
            list.Insert(6);
            list.Insert(7);
            list.Insert(8);

            list.Print();

            Console.WriteLine();

            // (a).
            list.InsertAfterAll(912);
            Console.WriteLine("(a).");
            list.Print();
            Console.WriteLine();

            // (b).
            Console.WriteLine("(b). = " + list.FindRemoveAndReturn(3));
            list.Print();
            Console.WriteLine();

            // (c)
            Console.WriteLine("(c).");
            list.InsertAfter(555, 4);
            list.Print();
            Console.WriteLine();

            // (d).
            Console.WriteLine("(d).");
            list.RemoveOdds();
            list.Print();
            Console.WriteLine();

            // (e).
            Console.WriteLine("(e). = " + list.SearchValue(2));
            list.Print();
            Console.WriteLine();

            // (f).
            Console.WriteLine("(f). = " + list.Min());
            list.Print();
            Console.WriteLine();

            // (g).
            Console.WriteLine("(g).");
            list.RemoveAt(2);
            list.Print();
            Console.WriteLine();
        }
 static void Main(string[] args)
 {
     SinglyLinkedList list = new SinglyLinkedList();
     list.AddFirst(1);
     list.AddFirst(10);
     Console.WriteLine("Items in the list are: ");
     list.PrintList();
     list.AddLast(12);
     list.PrintList();
     list.RemoveFirst();
     list.PrintList();
     list.AddLast(13);
     Console.WriteLine("----------------------------");
     list.PrintList();
     Console.WriteLine("----------------------------");
     list.RemoveLast();
     list.PrintList();
     Console.WriteLine("----------------------------");
     list.Remove(12);
     list.PrintList();
     Console.ReadLine();
 }
 private SinglyLinkedList(T value, SinglyLinkedList <T> next)
 {
     Value  = value;
     Next   = next;
     Length = 1 + next.Length;
 }
Example #4
0
 public void Dispose()
 {
     list  = null;
     index = -1;
 }
Example #5
0
 public Enumerator(SinglyLinkedList <T> list)
 {
     this.list = list;
     index     = -1;
 }
Example #6
0
        static void Main(string[] args)
        {
            SinglyLinkedList test = new SinglyLinkedList();

            Console.WriteLine("Test: ");
            test.AddFirst(10);
            test.AddFirst(20);
            test.AddFirst(30);
            test.AddFirst(40);
            Console.WriteLine("Singly Linked List After: AddFirst(10), AddFirst(20), AddFirst(30), AddFirst(40)");
            test.Print();
            Console.WriteLine();
            test.AddLast(50);
            test.AddLast(60);
            Console.WriteLine("Singly Linked List After: AddLast(50), AddLast(60)");
            test.Print();
            Console.WriteLine();
            test.Append(70);
            Console.WriteLine("Singly Linked List After: Append(70)");
            test.Print();
            Console.WriteLine();
            test.DeleteFirst();
            test.DeleteFirst();
            Console.WriteLine("Singly Linked List After: DeleteFirst() Twice");
            test.Print();
            Console.WriteLine();
            test.DeleteLast();
            Console.WriteLine("Singly Linked List After: DeleteLast()");
            test.Print();
            Console.WriteLine();
            test.Insert(4, 3);
            test.Insert(5, 1);
            Console.WriteLine("Singly Linked List After: Insert(4,3), Insert(5,1)");
            test.Print();
            Console.WriteLine();
            test.Delete(2);
            test.Delete(3);
            Console.WriteLine("Singly Linked List After: Delete(2), Delete(3)");
            test.Print();
            Console.WriteLine();
            Console.WriteLine();

            Console.WriteLine("Error Test: ");
            Console.WriteLine("No Values Have Been Inserted Into Linked List");
            Console.WriteLine();

            SinglyLinkedList error = new SinglyLinkedList();

            Console.WriteLine("Singly Linked List Error Message After: Print()");
            Console.WriteLine();

            error.Print();

            Console.WriteLine();
            Console.WriteLine("Singly Linked List Error Message After: DeleteFirst()");
            Console.WriteLine();

            error.DeleteFirst();

            Console.WriteLine();
            Console.WriteLine("Singly Linked List Error Message After: DeleteLast()");
            Console.WriteLine();

            error.DeleteLast();

            Console.WriteLine();
            Console.WriteLine("Singly Linked List After Insert(27, 0) With No Values In List");
            Console.WriteLine();
            Console.WriteLine("AddFirst() Will Be Called Instead: ");
            Console.WriteLine();

            error.Insert(27, 0);
            error.Print();
            Console.WriteLine();

            Console.WriteLine();
            Console.WriteLine("Singly Linked List Error Message After Delete() Called Twice");
            Console.WriteLine();

            error.Delete(0);
            error.Print();

            error.Delete(0);
        }
Example #7
0
        public static (bool, SinglyLinkedList <T>) Find <T>(this SinglyLinkedList <T> list, T value)
        {
            var found = list.FirstOrDefault(item => item.Value.Equals(value));

            return(found != null, found);
        }