Logo Studenta

Estructuras de Datos I - TDA Lista Implementación estatica Parte 2

¡Este material tiene más páginas!

Vista previa del material en texto

Estructuras de Datos I
Lista Implementación estática
a
b
w
c
d
4
DATOS
ULTIMO
0
1
2
3
2
Posición dada
4
5
6
…
n
Eliminar desde una posición dada
a
b
w
c
d
4
DATOS
ULTIMO
0
1
2
3
2
Posición dada
4
5
6
…
n
Eliminar desde una posición dada
2
Posición aux
3
aux + 1
a
b
c
c
d
4
DATOS
ULTIMO
0
1
2
3
2
Posición dada
4
5
6
…
n
Eliminar desde una posición dada
2
Posición aux
3
aux + 1
a
b
c
c
d
4
DATOS
ULTIMO
0
1
2
3
2
Posición dada
4
5
6
…
n
Eliminar desde una posición dada
3
Posición aux
a
b
c
c
d
4
DATOS
ULTIMO
0
1
2
3
2
Posición dada
4
5
6
…
n
Eliminar desde una posición dada
3
Posición aux
4
aux + 1
a
b
c
d
d
4
DATOS
ULTIMO
0
1
2
3
2
Posición dada
4
5
6
…
n
Eliminar desde una posición dada
3
Posición aux
4
aux + 1
a
b
c
d
d
4
DATOS
ULTIMO
0
1
2
3
2
Posición dada
4
5
6
…
n
Eliminar desde una posición dada
4
Posición aux
a
b
c
d
d
3
DATOS
ULTIMO
0
1
2
3
2
Posición dada
4
5
6
…
n
Eliminar desde una posición dada
Función: elimina()
Recibe: posición, lista
Regresa: nada
¿vacía(lista) o posición < 0 o posición > ultimo?
	Si: Mandar mensaje de error y terminar
aux = posición
MIENTRAS aux < ultimo
	datos[aux] = datos[aux + 1]
	aux = aux + 1;
Fin MIENTRAS
ultimo = ultimo - 1;
Función: elimina()
Recibe: posición, lista
Regresa: nada
¿vacía(lista) o posición < 0 o posición > ultimo?
	Si: Mandar mensaje de error y terminar
aux = posición
MIENTRAS aux < ultimo
	datos[aux] = datos[aux + 1]
	aux = aux + 1;
Fin MIENTRAS
ultimo = ultimo - 1;
Void elimina(int pos, list *Lista1){
Int aux;
If(vacia(Lista1) || pos < 0 || pos > Lista1  ultimo){
	return;
}
For(aux = pos; aux < Lista1ultimo; aux++){
	Lista1Datos[aux] = Lista1Datos[aux + 1]; 
} 
Lista1ultimo--;
}
Función: primero()
Recibe: lista
Regresa: posición
¿vacía(lista)?
	Si: Retornar -1
	No: Retornar 0
Primero
int primero(Lista *Lista1){
if(vacia(Lista1)){
	return -1;
}
return 0;
}
Función: primero()
Recibe: lista
Regresa: posición
¿vacía(lista)?
	Si: Retornar -1
	No: Retornar 0
Función: ultimo()
Recibe: lista
Regresa: posición
retornar ultimo
Ultimo
int ultimo(Lista *Lista1){
return Lista1ultimo;
}
Función: ultimo()
Recibe: lista
Regresa: posición
retornar ultimo
Función: anterior()
Recibe: pos, lista
Regresa: posición
¿vacia(lista) ó pos < 1 ó pos > ultimo?
	Si: regresar -1
	No: regresar pos - 1
Anterior
Función: siguiente()
Recibe: pos, lista
Regresa: posición
¿vacia(lista) ó pos < 0 ó pos > ultimo - 1?
	Si: regresar -1
	No: regresar pos + 1
Siguiente
Función: localizar()
Recibe: elemento, lista
Regresa: posición
Regresar: tipo de búsqueda (Lineal o Binaria)
Localiza
Función: localizar()
Recibe: elemento, lista
Regresa: posición
Regresar: tipo de búsqueda (Lineal o Binaria)
Localiza
Función: ordenar()
Recibe: lista
Regresa: nada
Regresar: tipo de ordenamiento 
(bubbleSort, insertSort, mergeSort, quickSort)
Ordena
Función: recuperar(Lista *Lista1)
Recibe: pos, lista
Regresa: elemento
¿vacia(Lista1) ó pos < 0 ó pos > Lista1ultimo?
	Si:	ERROR FATAL
		INSUFICIENCIA DE DATOS (Excepción)
	No: regresar Lista1datos[pos]
Recupera
Función: imprimir(Lista *Lista1)
Recibe: lista
Regresa: nada
Aux = 0;
MIENTRAS aux <= Lista1ultimo
	imprimir Lista1datos[i]
	i = i + 1
Fin MIENTRAS
Imprime
Función: anula(Lista *Lista1)
Recibe: lista
Regresa: nada
Lista1ultimo = -1;
Anula

Continuar navegando