Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Program
- {
- public Nodo primero;
- public int tamaño;
- public Program()
- {
- this.primero = null;
- this.tamaño = 0;
- }
- public bool estaVacia() //retorna true si la lista esta vacia
- {
- return primero == null;
- }
- public void insertarPrimero(String dato)//inserta nuevos nodos al inicio de la lista
- {
- Nodo nuevo = new Nodo(dato);
- if (!estaVacia())
- {
- nuevo.siguiente = primero;
- }
- primero = nuevo;
- }
- public void insertarUltimo(String dato)//inserta nuevos nodos al final (para que quede ordenado)
- {
- Nodo aux = new Nodo(dato);
- Nodo rec_aux;
- if (estaVacia())
- {
- insertarPrimero(dato);
- }
- else
- {
- rec_aux = primero;
- while (rec_aux.siguiente != null)
- {
- rec_aux = rec_aux.siguiente;
- }
- rec_aux.siguiente = aux;
- }
- }
- public int numElementos()
- {
- Nodo aux;
- int numElementos = 0;
- aux = primero;
- while (aux != null)
- {
- numElementos++;
- aux = aux.siguiente;
- }
- return numElementos;
- }
- public void Imprimir()
- {
- Nodo actual = primero;
- while (actual != null)
- {
- Console.Write("[" + actual.dato + "]");
- actual = actual.siguiente;
- }
- Console.WriteLine();
- }
- public void EliminarPosicionNodo(int p)
- {
- Nodo anterior = primero;
- Nodo actual = primero;
- int dato = 0;
- if (p == 0)
- {
- primero = primero.siguiente;
- }
- if (p > 0 && p <= tamaño - 1)
- {
- while (dato != p && actual.siguiente != null)
- {
- anterior = actual;
- actual = actual.siguiente;
- dato++;
- }
- anterior.siguiente = actual.siguiente;
- }
- }
- public int Buscar(string n)
- {
- Nodo actual = primero;
- int count = 0;
- while (actual != null)
- {
- if (actual.dato == n)
- { break; }
- count++;
- actual = actual.siguiente;
- }
- return count;
- }
- public void intercambiar(int a, int b)
- {
- String aux = getNodo(a).dato;
- getNodo(a).dato = getNodo(b).dato;
- getNodo(b).dato = aux;
- }
- public int getPosicion(Nodo n) {
- Nodo actual = primero;
- int count = 0;
- while (actual != null)
- {
- if (actual.dato == n.dato) break;
- else
- {
- count++;
- actual = actual.siguiente;
- }
- }
- return count;
- }
- public Nodo getNodo(int pos) // retorna el nodo en la posicion especificada
- {
- Nodo aux = primero;
- int cont = 0;
- if (pos < 0 || pos >= numElementos())
- {
- Console.WriteLine("La posicion insertada no es correcta");
- }
- else
- {
- while (aux != null)
- {
- if (pos == cont)
- {
- return aux;
- }
- aux = aux.siguiente;
- cont++;
- }
- }
- return aux;
- }
- public string ObtenerDato(int a)
- {
- return getNodo(a).dato;
- }
- static void Main(string[] args)
- {
- Program Lista = new Program();
- Lista.insertarUltimo("A");
- Lista.insertarUltimo("B");
- Lista.insertarUltimo("C");
- Lista.insertarUltimo("D");
- Lista.insertarUltimo("E");
- Lista.Imprimir();
- Console.WriteLine(Lista.Buscar("D"));
- Console.WriteLine(Lista.Buscar("A"));
- Console.WriteLine(Lista.Buscar("E"));
- Lista.intercambiar(1,3);
- Lista.Imprimir();
- Console.ReadKey();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement