Está en la página 1de 4

using System;

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

namespace ConsoleApplication1
{

class Nodo
{
private string info;
private Nodo liga, ligaa;
//private Nodo ligaa;
public void asignarInfo(string i) { info = i; }
public void asignarLiga(Nodo l) { liga = l; }
public void asignarLigaa(Nodo la) { ligaa = la; }
public string obtenerInfo() { return info; }
public Nodo obtenerLiga() { return liga; }
public Nodo obtenerLigaa() { return ligaa; }
}
//class Nodoa
//{
//private Nodoa ligaa;
//public void asignarLigaa(Nodoa la) { ligaa = la; }
// public Nodoa obtenerLigaa() { return ligaa; }

//}

//***************** fin clase Nodo *****************


class Lista
{
static Nodo cab;
public Nodo obtenerCab() { return cab; }
public void asignarCab(Nodo c) { cab = c; }
//------------------------------------------------------------------
public void llenarLista()
{
Nodo p = null, u = null, a = null;
a = cab;
string resp = "";
do
{
Console.Write("Ingrese una cadena: ");
p = new Nodo();
p.asignarInfo(Console.ReadLine());
p.asignarLiga(null);
p.asignarLigaa(a);
if (cab == null)
cab = p;
else
u.asignarLiga(p);
a = p;
u = p;

Console.WriteLine("Desea m�s datos? si/no");


do
{
resp = Console.ReadLine();
resp = resp.ToLower();
if (resp != "si" && resp != "no")
Console.WriteLine("Error: Digite s�lo \"si\" o \"no\"");
} while (resp != "si" && resp != "no");
} while (resp == "si");
}
//------------------------------------------------------------------
public void mostrarLista()
{
Nodo p = cab;
while (p != null)
{
Console.WriteLine(p.obtenerInfo());
p = p.obtenerLiga();
}
}
//------------------------------------------------------------------
public void insertarFinal(string dato)
{
Nodo p = cab;
while (p.obtenerLiga() != null)
{
p = p.obtenerLiga();
}
Nodo q = new Nodo();
q.asignarInfo(dato);
q.asignarLiga(null);
p.asignarLiga(q);
}
//------------------------------------------------------------------
public void eliminar(string dato)
{
Nodo p = cab, q = null;
bool sw = false; // dato no existe
while (p != null && !sw)
{
if (p.obtenerInfo() == dato)
sw = true;
else
{
q = p;
p = p.obtenerLiga();
}
}
if (!sw)
Console.WriteLine(dato + " no existe");
else
{
if (p == cab)
cab = cab.obtenerLiga();
else
q.asignarLiga(p.obtenerLiga());
Console.WriteLine(dato + " eliminado!");
}

}
}
//************************ fin clase Lista ************************
class Proyecto
{
static void Main(string[] args)
{
char opc;
string cad;
do
{
Console.WriteLine("\t\nMEN�\n");
Console.WriteLine("1. Ingresar lista\n");
Console.WriteLine("2. Mostrar lista\n");
Console.WriteLine("3. Adicionar dato en Lista\n");
Console.WriteLine("4. Eliminar dato en la Lista\n");
Console.WriteLine("5. Salir\n");
Console.Write("\t Cu�l es su opci�n? ");
cad = Console.ReadLine();
opc = Convert.ToChar(cad);
Lista lista1 = new Lista();
switch (opc)
{
case '1':
Console.WriteLine("INGRESO DE DATOS\n");
lista1.asignarCab(null);
lista1.llenarLista();
break;
case '2':
if (lista1.obtenerCab() != null)
{
Console.WriteLine("SALIDA DE DATOS\n");
lista1.mostrarLista();
}
else
Console.WriteLine("\nNO HAY DATOS!!\n");
break;
case '3':
if (lista1.obtenerCab() != null)
{
Console.WriteLine("INSERTANDO AL FINAL...\n");
Console.Write("Ingrese una cadena: ");
string cade = Console.ReadLine();
lista1.insertarFinal(cade);

}
else
Console.WriteLine("\nNO HAY DATOS!!\n");
break;
case '4':
if (lista1.obtenerCab() != null)
{
Console.WriteLine("Ingrese dato a borrar: ");
string d = Console.ReadLine();
lista1.eliminar(d);

}
else
Console.WriteLine("\nNO HAY DATOS!!\n");
break;
case '5':
Console.WriteLine("FIN\n");
break;
default:
Console.WriteLine("Error\n");
break;
}
} while (opc != '5');
Console.ReadLine();
}
}
}
1.

También podría gustarte