Advertisement
Guest User

Untitled

a guest
Nov 21st, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.63 KB | None | 0 0
  1. class Program
  2.     {
  3.         public Nodo primero;
  4.         public int tamaño;
  5.         public Program()
  6.         {
  7.             this.primero = null;
  8.             this.tamaño = 0;
  9.         }
  10.  
  11.         public bool estaVacia() //retorna true si la lista esta vacia
  12.         {
  13.             return primero == null;
  14.         }
  15.  
  16.         public void insertarPrimero(String dato)//inserta nuevos nodos al inicio de la lista
  17.         {
  18.             Nodo nuevo = new Nodo(dato);
  19.             if (!estaVacia())
  20.             {
  21.                 nuevo.siguiente = primero;
  22.             }
  23.             primero = nuevo;
  24.         }
  25.         public void insertarUltimo(String dato)//inserta nuevos nodos al final (para que quede ordenado)
  26.         {
  27.             Nodo aux = new Nodo(dato);
  28.             Nodo rec_aux;
  29.             if (estaVacia())
  30.             {
  31.                 insertarPrimero(dato);
  32.             }
  33.             else
  34.             {
  35.                 rec_aux = primero;
  36.                 while (rec_aux.siguiente != null)
  37.                 {
  38.                     rec_aux = rec_aux.siguiente;
  39.                 }
  40.                 rec_aux.siguiente = aux;
  41.             }
  42.         }
  43.  
  44.         public int numElementos()
  45.         {
  46.             Nodo aux;
  47.             int numElementos = 0;
  48.             aux = primero;
  49.             while (aux != null)
  50.             {
  51.                 numElementos++;
  52.                 aux = aux.siguiente;
  53.             }
  54.             return numElementos;
  55.         }
  56.  
  57.  
  58.         public void Imprimir()
  59.         {
  60.             Nodo actual = primero;
  61.             while (actual != null)
  62.             {
  63.                 Console.Write("[" + actual.dato + "]");
  64.                 actual = actual.siguiente;
  65.             }
  66.             Console.WriteLine();
  67.         }
  68.         public void EliminarPosicionNodo(int p)
  69.         {
  70.             Nodo anterior = primero;
  71.             Nodo actual = primero;
  72.             int dato = 0;
  73.             if (p == 0)
  74.             {
  75.                 primero = primero.siguiente;
  76.             }
  77.             if (p > 0 && p <= tamaño - 1)
  78.             {
  79.                 while (dato != p && actual.siguiente != null)
  80.                 {
  81.                     anterior = actual;
  82.                     actual = actual.siguiente;
  83.                     dato++;
  84.                 }
  85.                 anterior.siguiente = actual.siguiente;
  86.             }
  87.         }
  88.  
  89.         public int Buscar(string n)
  90.         {
  91.             Nodo actual = primero;
  92.             int count = 0;
  93.             while (actual != null)
  94.             {
  95.                 if (actual.dato == n)
  96.                 { break; }
  97.                 count++;
  98.                 actual = actual.siguiente;
  99.             }
  100.             return count;
  101.         }
  102.  
  103.         public void intercambiar(int a, int b)
  104.         {
  105.             String aux = getNodo(a).dato;
  106.             getNodo(a).dato = getNodo(b).dato;
  107.             getNodo(b).dato = aux;
  108.  
  109.         }
  110.  
  111.         public int getPosicion(Nodo n) {
  112.             Nodo actual = primero;
  113.             int count = 0;
  114.             while (actual != null)
  115.             {
  116.                 if (actual.dato == n.dato) break;
  117.                 else
  118.                 {
  119.                     count++;
  120.                     actual = actual.siguiente;
  121.                 }
  122.             }
  123.             return count;
  124.         }
  125.  
  126.         public Nodo getNodo(int pos) // retorna el nodo en la posicion especificada
  127.         {
  128.             Nodo aux = primero;
  129.             int cont = 0;
  130.             if (pos < 0 || pos >= numElementos())
  131.             {
  132.                 Console.WriteLine("La posicion insertada no es correcta");
  133.             }
  134.             else
  135.             {
  136.                 while (aux != null)
  137.                 {
  138.                     if (pos == cont)
  139.                     {
  140.                         return aux;
  141.                     }
  142.                     aux = aux.siguiente;
  143.                     cont++;
  144.                 }
  145.             }
  146.             return aux;
  147.         }
  148.         public string ObtenerDato(int a)
  149.         {
  150.             return getNodo(a).dato;
  151.         }
  152.  
  153.         static void Main(string[] args)
  154.         {
  155.             Program Lista = new Program();
  156.             Lista.insertarUltimo("A");
  157.             Lista.insertarUltimo("B");
  158.             Lista.insertarUltimo("C");
  159.             Lista.insertarUltimo("D");
  160.             Lista.insertarUltimo("E");
  161.             Lista.Imprimir();
  162.             Console.WriteLine(Lista.Buscar("D"));
  163.             Console.WriteLine(Lista.Buscar("A"));
  164.             Console.WriteLine(Lista.Buscar("E"));
  165.  
  166.             Lista.intercambiar(1,3);
  167.  
  168.             Lista.Imprimir();
  169.  
  170.             Console.ReadKey();
  171.         }
  172.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement