OPERACIONES BASICAS.

 

Las operaciones que se pueden realizar con listas incluyen fundamentalmente las siguientes:

 

1-     Insertar un elemento en una lista

2-     Buscar un elemento en una lista

3-     Borrar un elemento de una lista

4-     Recorrer los elementos de una lista

5-     Borrar todos los elementos de una lista

 

*Buscar en una lista un elemento con un valor x

 

Supongamos que queremos buscar un elemento en una lista cuyo primer elemento esta apuntado por p. la búsqueda es secuencial y termina cuando se encuentra el elemento, o bien cuando se llega al final de la lista.

 

q=p;                                                 //q apunta al primer elemento de la lista

cout<<”Dato a buscar: “; leerDato(x);

while(q!=0&&q->dato!=x)

 q=q->siguiente;                              //q apunta al siguiente elemento

 

Se observa que el orden de las expresiones que forman la condición del bucle while. Sabemos que en una operación &&(AND), cuando una de las expresiones es falsa la condición ya es falsa, por lo que el resto de las expresiones no necesitan ser evaluadas. Cuando q valga cero, la expresión->dato no será evaluado, de lo contrario se producirá un error. Finalmente, la variable q quedara apuntando al elemento buscado, o valdrá cero si ese elemento no se encuentra.

 

*Recorrer una lista

 

Se quiere realizar una operación con todos los elementos de una lista, cuyo primer elemento esta apuntado por p. Ejemplo, escribir el valor de cada elemento de la lista. Las operaciones son las siguientes:

 

q=p;                   // Salvar el puntero al primer elemento de la lista

 while(q!=0)

  {

    cout<<q->dato<<” “;

    q=q->siguiente;

  }

 

*Borrar todos los elementos de una lista

 

Borrar todos los elementos equivale a liberar la memoria asignada a cada uno de los elementos de la misma. Se quiere borrar una lista, cuyo primer elemento esta apuntado por p. Sus operaciones son las siguientes:

 

while(p!=0)

  {

    q=p;

    p=p->siguiente;

    delete q;

  }

 

Antes de borrar el elemento apuntado por q, se hace que p apunte al siguiente elemento, por que si no se perdería el resto de la lista.