Beruflich Dokumente
Kultur Dokumente
int info;
Nodo* sgte};
int v[4]
3
6
14
25
Lista puntero->campo
a b c d
a
6 c 25
3 b 14 d NULL
Nombre Tipo valor
v vector 3, 6, 14, 25
lista puntero Direccion de memoria a
v[0] int 3
listainfo int 3
listasgte puntero Direccion de memoria b
v[1] int 6
listasgteinfo int 6
listasgtesgte puntero Direccion de memoria C
v[2] int 14
listasgtesgteinfo int 14
listasgtesgtesgte puntero Direccion de memoria D
v[3] int 25
listasgtesgtesgteinfo int 25
Abordaremos distintos patrones para insertar nodos en una lista, supondremos ordenadas en forma creciente.
Abordaremos la implementación con datos simples y luego con plantillas Los patrones a abordar serán:
Insertar el primer nodo de una lista o delante del primero
insertar después del ultimo
Insertar en una posición determinada
Insertar ordenado donde corresponda según el criterio de ordenamiento
buscar un valor en la lista
insertar ordenado sin repetir la clave
cambiar el criterio de ordenamiento
Eliminar nodos
o el primero
o el ultimo
o uno determinado según su valor
o todos los nodos de la estructura
Mostrar todos los valores de la lista
o eliminando el mostrado
o sin eliminar el mostrado
B 2 c
Qc
d 4 e
c 3 d
Pe
e 5 NULL
c 3 d 4 v
d 4 NULL
p->sgte= q->sgte
q->sgte=p;
If (lista == NULL||x<lista->info){
Nuexo->sgte = lista;
Lista = nuevo;
else
Nodo*q=Lista
while(q->sgte!=NULL && x> q->sgte->info)
q = q->sgte;
nuevo->sgte= q->sgte
q->sgte=nuevo;
return Nuevo;
}
Otra alternativa
Insertar ordenado Nodo* insertarOrdenado(Nodo*& lista, int v){
if( ant==NULL )
lista = nuevo;
else
ant->sig = nuevo;
nuevo->sig = actual;
return nuevo;
}