public bool suprimir(ref int x, int p) { nodo ant, xcab; int i = 1; if (p >= 1 && p <= cant && !vacia())//valido posicion y que no este vacia { if (p == 1) { x = cab.get_dato(); cab = cab.get_sig(); } else { xcab = cab; ant = cab; while (i < p) { ant = xcab; xcab = xcab.get_sig(); i++; } x = xcab.get_dato(); ant.set_sig(xcab.get_sig());//hace el enlace en para eliminar elemento; } cant--; return(true); } else { return(false); } }
public void insertar_o(int x) { nodo aux, ant, xcab; aux = new nodo(); aux.set_dato(x); if ((cant == 0) || (x <= cab.get_dato()))//primer caso lista vacia o el el primero { aux.set_sig(cab); cab = aux; cant++; } else { xcab = cab; ant = cab;//obliga a inicializar anterior el compilador while ((xcab != null) && (x > xcab.get_dato())) { ant = xcab; xcab = xcab.get_sig(); } ant.set_sig(aux); aux.set_sig(xcab); cant++; } }
public bool ultimo(ref int x) { nodo xcab = cab; if (!vacia()) { while (xcab.get_sig() != null) { xcab = xcab.get_sig(); } x = xcab.get_dato(); return(true); } else { return(false); } }
//busca el elemento en la lista y devuelve su posicion public int buscar(int x) { int i = 1; nodo xcab = cab; while (i <= cant && x != xcab.get_dato()) { i++; xcab = xcab.get_sig(); } if (i <= cant) { return(i); } else { return(-1); } }
public bool recuperar(ref int x, int p) { nodo xcab = cab; int i = 1; if (p >= 1 && p <= cant)//primero valido posicion { while (i < p) { xcab = xcab.get_sig(); i++; } x = xcab.get_dato(); return(true); } else { return(false); } }