Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            ListaDoblementeEnlazada l = new ListaDoblementeEnlazada();

            l.Prim                               = new Nodo(1);
            l.Prim.Siguiente                     = new Nodo(4);
            l.Prim.Siguiente.Siguiente           = new Nodo(6);
            l.Prim.Siguiente.Siguiente.Siguiente = l.Prim;
            LinkedList <int> lista = new LinkedList <int>();

            lista.AddFirst(37);
            lista.AddFirst(99);
            lista.AddFirst(12);
            lista.AddFirst(37);
            lista.AddFirst(99);
            lista.AddFirst(12);
            lista.AddFirst(37);
            lista.AddFirst(99);
            lista.AddFirst(12);

            System.Console.WriteLine("******** PREGUNTA 7 ********");


            System.Console.WriteLine("Lista: ");
            LinkedListNode <int> node = lista.First;

            while (null != node)
            {
                System.Console.WriteLine(node.Value);
                node = node.Next;
            }

            if (is_cyclic(lista))
            {
                System.Console.WriteLine("Es ciclica!");
            }
            else
            {
                System.Console.WriteLine("No es ciclica!");
            }

            System.Console.WriteLine("Lista2: ");
            Nodo nodo = l.Prim;

            /*while (null != nodo)
             * {
             *  System.Console.WriteLine(nodo.Valor);
             *  nodo = nodo.Siguiente;
             * }*/

            if (is_cyclic2(l))
            {
                System.Console.WriteLine("Es ciclica!");
            }
            else
            {
                System.Console.WriteLine("No es ciclica!");
            }
            System.Console.ReadKey();
        }
        static void Main(string[] args)
        {
            ListaDoblementeEnlazada l = new ListaDoblementeEnlazada();
            l.Prim = new Nodo(1);
            l.Prim.Siguiente = new Nodo(4);
            l.Prim.Siguiente.Siguiente = new Nodo(6);
            l.Prim.Siguiente.Siguiente.Siguiente = l.Prim;
            LinkedList<int> lista = new LinkedList<int>();

            lista.AddFirst(37);
            lista.AddFirst(99);
            lista.AddFirst(12);
            lista.AddFirst(37);
            lista.AddFirst(99);
            lista.AddFirst(12);
            lista.AddFirst(37);
            lista.AddFirst(99);
            lista.AddFirst(12);

            System.Console.WriteLine("******** PREGUNTA 7 ********");

            System.Console.WriteLine("Lista: ");
            LinkedListNode<int> node = lista.First;
            while (null != node)
            {
                System.Console.WriteLine(node.Value);
                node = node.Next;
            }

            if (is_cyclic(lista))
                System.Console.WriteLine("Es ciclica!");
            else
                System.Console.WriteLine("No es ciclica!");

            System.Console.WriteLine("Lista2: ");
            Nodo nodo = l.Prim;

            /*while (null != nodo)
            {
                System.Console.WriteLine(nodo.Valor);
                nodo = nodo.Siguiente;
            }*/

            if (is_cyclic2(l))
                System.Console.WriteLine("Es ciclica!");
            else
                System.Console.WriteLine("No es ciclica!");
            System.Console.ReadKey();
        }
 /// <summary>
 /// Metodo para una lista doblemente enlazada hecha desde 0 (donde si puede ser ciclica)
 /// </summary>
 static bool is_cyclic2(ListaDoblementeEnlazada lista)
 {
     Nodo nodo = lista.Prim;
     while (null != nodo)
     {
         if (nodo.Siguiente == nodo)
             return true;
         Nodo aux_node = lista.Prim;
         while (null != aux_node && aux_node != nodo)
         {
             if (nodo.Siguiente == aux_node)
                 return true;
             aux_node = aux_node.Siguiente;
         }
         nodo = nodo.Siguiente;
     }
     return false;
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Metodo para una lista doblemente enlazada hecha desde 0 (donde si puede ser ciclica)
        /// </summary>
        static bool is_cyclic2(ListaDoblementeEnlazada lista)
        {
            Nodo nodo = lista.Prim;

            while (null != nodo)
            {
                if (nodo.Siguiente == nodo)
                {
                    return(true);
                }
                Nodo aux_node = lista.Prim;
                while (null != aux_node && aux_node != nodo)
                {
                    if (nodo.Siguiente == aux_node)
                    {
                        return(true);
                    }
                    aux_node = aux_node.Siguiente;
                }
                nodo = nodo.Siguiente;
            }
            return(false);
        }