Пример #1
0
        public void Consulta(int n)
        {
            Lista START = this;
            bool  achou = false;
            int   cont  = 0;

            do
            {
                cont++;
                if (START.info == n) //SE o info para o objeto ao qual START está apontando no momento for igual á n..
                {
                    Console.WriteLine("Elemento encontrado na posição {0}", cont);
                    achou = true;
                }

                START = START.next;                    // Fazendo a "incrementação" de START: START receberá/apontará para a posição/objeto seguinte ao objeto apontado no momento por START: Pulará uma linha.
                                                       // Nesse caso eu faço o pulo de posição porém isso não remove os objetos que são ultrapassados por START na lista pois aqui não passo START por referência, logo as alterações não serão salvas.
            } while (START != null && achou == false); // START retornará null assim que ultrapassar o último elemento/objeto da lista(que é apontado sempre por END), pois como não haverá mais elemento a ser referenciado, o retorno é nulo.

            if (achou == false)
            {
                Console.WriteLine("Elemento não encontrado!");
            }
        }
Пример #2
0
        static void Main(string[] args)
        {
            Lista START, END, ff;

            START = END = null;

            int n, op;

            do
            {
                Console.Clear();
                Console.WriteLine(" Menu Principal");
                Console.WriteLine("(1) - Insere um elemento na Lista");
                Console.WriteLine("(2) - Remove um elemento da Lista");
                Console.WriteLine("(3) - Consulta um elemento da Lista");
                Console.WriteLine("(4) - Imprime os elementos da Lista");
                Console.WriteLine("(5) - Para SAIR");

                op = int.Parse(Console.ReadLine());
                Console.Clear();

                switch (op)
                {
                case 1:
                    Console.Clear();
                    ff = new Lista();

                    Console.Write("Entre com um numero: ");
                    n = int.Parse(Console.ReadLine());

                    ff.Insere(n, ref START, ref END);
                    break;

                case 2:
                    if (START == null)     //SE START estiver vazio, significa que a lista ainda não foi criada.

                    {
                        Console.WriteLine("Lista vazia!");
                    }

                    else
                    {
                        START.Remove(ref START);
                    }
                    Console.ReadKey();
                    break;

                case 3:
                    if (START == null)
                    {
                        Console.WriteLine("Lista vazia!");
                    }

                    else
                    {
                        Console.Write("Entre com um numero: ");
                        n = int.Parse(Console.ReadLine());

                        START.Consulta(n);
                    }
                    Console.ReadKey();
                    break;

                case 4:
                    if (START == null)
                    {
                        Console.WriteLine("Lista vazia!");
                    }

                    else
                    {
                        START.Imprime();
                    }
                    Console.ReadKey();
                    break;

                case 5:
                    Console.WriteLine("Encerrando aplicação..");
                    break;
                }
            } while (op != 5);
            Console.ReadKey();
        }
Пример #3
0
 public void Remove(ref Lista START)
 {
     START = this.next; // START recebe o endereço de memória(posição) do objeto seguinte(next) ao objeto corrente(que é o próprio START). Em outras palavras: Pego a posição atual de START e o avanço para a posição seguinte. Fazendo isso, eu "ignoro"/retiro o 1º Objeto da lista pois pulo para o segundo. Assim de certa forma eu tiro o objeto da lista.
     Console.WriteLine("Objeto removido!");
 }
Пример #4
0
 public Lista()
 {
     info = 0;
     next = null;
 }