Está en la página 1de 4

Código de programa………

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Tarea_de_listas
{
class ListaGenerica
{
static void Main(string[] args)
{
Console.WriteLine("Ingrese un numero");
Console.WriteLine("1) Insertar un nodo al principio de la lista");
Console.WriteLine("2) Insertar un nodo en la ante última posición.");
Console.WriteLine("3) Borrar el segundo nodo.");
Console.WriteLine("4) Borrar el último nodo.");
ListaGenerica Lista = new ListaGenerica();
Lista.InsertarPrimerNodo(7);
Lista.InsertarPrimerNodo(21);
Lista.InsertarPrimerNodo(99);
Lista.InsertarPrimerNodo(58);
Lista.InsertarPrimerNodo(23);
int numero = int.Parse(Console.ReadLine());
Console.WriteLine(" ");
Console.WriteLine("Nodo Predeterminado");
Lista.Imprimir();
do
{
switch (numero)
{
case 1:
Console.WriteLine("Ingrese el nodo que desea");
int n = int.Parse(Console.ReadLine());
Lista.InsertarPrimerNodo(n);
Console.WriteLine(" RESULTADO");
Lista.Imprimir();
Console.WriteLine(" ");
break;
case 2:
Console.WriteLine("Ingrese el nodo que desea");
int n1 = int.Parse(Console.ReadLine());
Lista.InsertarPenultimoNodo(n1);
Console.WriteLine(" RESULTADO");
Lista.Imprimir();
Console.WriteLine(" ");
break;
case 3:
Console.WriteLine("Borramos el segundo nodo");
Lista.BorrarSegundoNodo();
Lista.Imprimir();
Console.WriteLine(" ");
break;
case 4:
Console.WriteLine("Borramos el ultimo nodo");
Lista.BorrarUltimoNodo();
Lista.Imprimir();
break;
default:
break;
}
numero = int.Parse(Console.ReadLine());
} while (true);

Console.ReadKey();
}

class Nodo
{
public int info;
public Nodo ant, sig;
}
private Nodo principal;
public ListaGenerica()
{
principal = null;
}
public void InsertarPrimerNodo(int x)
{
Nodo nuevo = new Nodo();
nuevo.info = x;
nuevo.sig = principal;
if (principal != null)
principal.ant = nuevo;
principal = nuevo;
}
public void InsertarPenultimoNodo(int x)
{
if (principal != null)
{
Nodo nuevo = new Nodo();
nuevo.info = x;
if (principal.sig == null)
{
nuevo.sig = principal;
principal = nuevo;
}
else
{
Nodo reco = principal;
while (reco.sig != null)
{
reco = reco.sig;
}
Nodo anterior = reco.ant;
nuevo.sig = reco;
nuevo.ant = anterior;
anterior.sig = nuevo;
reco.ant = nuevo;
}
}
}
public void BorrarSegundoNodo()
{
if (principal != null)
{
if (principal.sig != null)
{
Nodo segundo = principal.sig;
segundo = segundo.sig;
principal.sig = segundo;
if (segundo != null)
segundo.ant = principal;
}
}
}

public void BorrarUltimoNodo()


{
if (principal != null)
{
if (principal.sig == null)
{
principal = null;
}
else
{
Nodo reco = principal;
while (reco.sig != null)
{
reco = reco.sig;
}
reco = reco.ant;
reco.sig = null;
}
}
}
public void Imprimir()
{
Nodo reco = principal;
while (reco != null)
{
Console.Write(reco.info + " ");
reco = reco.sig;
}
Console.WriteLine();
}
}
}

Programa corriendo…….

También podría gustarte