Lista De Punteros

Páginas: 5 (1017 palabras) Publicado: 24 de abril de 2011
1. Se requiere determinar el tipo de dato de los elementos de la lista, en este caso vamos a escoger el tipo integer, entonces:

Elem_T = INTEGER;

2. Seguidamente hay que definir como se representaran estes elementos como una lista, ya sea con vectores o punteros.
Usaremos punteros, siendo asi vamos a definir la estructura de cada nodo de la lista , que tendrá doscampos:
Contenido, que sera del tipo Elem_T, y que por lo tanto tendra los valor del elemento de la lista.
Y el campo siguiente que sera del un puntero del tipo tNodo, que referenciara al siguiente nodo en la lista.

tNodo = RECORD
contenido : Elem_T;
siguiente : tLista;END;

3. Una vez definido el tipo nodo podemos pasar a definir el tipo lista, que como ya se ha dicho no es mas que un nodo seguido de otros nodos, por lo tanto, la definicion del tipo lista sera:

tLista = ^tNodo;

4. Se pasan a definir las variables como la variable lista que sera una variable del tipo lista:
lista: tLista;

5. Una vezdefinido lo anterior ya tenemos los principios basicos del ADT lista, estos son los tipos. Ahora tenemos que definir las operaciones, para poder decir que es un ADT.
Sobre las operaciones, habra algunas que son mas sencillas de implentar que otras, pues seran mas basicas y por estas es que debemos de empezar la implementacion, pero antes de todo, tenemos que definir cuales son lasoperaciones que el ADT va a realizar, que hace cada una de estas (su objetivo) y cuales son sus parámetros.

PROCEDURE Insertar (VAR L: tLista; x : Elem_T;p: INTEGER);
(*inserta un elemento, x, en una posicion p de L, pasando los elementos
de la posicion p y siguientes a la posicion inmediatamente posterior*)

FUNCTION Localizar (L: tLista; x : Elem_T):INTEGER;
(*localiza la posicion en la quese encuentra un elemento dado x,
si no lo encuentra devuelve 0*)

PROCEDURE Recuperar (L: tLista; VAR x : Elem_T;p: INTEGER; VAR encontrado:BOOLEAN);
(*encuentra el elemento x que esta en la posicion p, si la posicion p es
mayor que el numero de elementos de L, devuelve encontrado a FALSE*)

PROCEDURE Suprimir (VAR L: tLista; p: INTEGER);
(*elimina de L el elemento de la posicion p*)PROCEDURE Suprimir_dato (VAR L: tLista; x: Elem_T);
(*elimina de L todas las apariciones del elemento x*)

PROCEDURE Anula (VAR L: tLista);
(*ocasiona que L se vacie*)

FUNCTION Primero (L: tLista): Elem_T;
(*proporciona el primer elemento de L*)

FUNCTION Fin (L: tLista): Elem_T;
(*proporciona el ultimo elemento de L*)

PROCEDURE Imprimir (L: tLista);
(*imprime todos loselementos de la lista en su orden*)

FUNCTION Vacia (L: tLista): Boolean;
(*devuelve true si la lista L esta vacia, false en caso contrario*)

PROCEDURE INICIAR (L: tLista);
(*Al inicializar la lista L, hay que recordar que esta entra como parametro y que al ser una variable, ya esta existe, lo unico que se hace es que la lista se inicializa en el valor NIL.*)

Observaciones:Un parametro que tendrá cada una de estas operaciones será el tipo lista, evidentemente porque trabajan sobre una lista.
X va a ser un valor del tipo Elem_T, o sea un entero contenido en la lista.
Como parte de la implementacion se agrega un parámetro P, que va a indicar la posicion del nodo dentro de la lista enlazada sencilla. Por conveniencia se da a este paramentro untipo integer.

Implementaciones:

(***************************************************************)
PROCEDURE INICIAR (L: tLista);
BEGIN
L:=NIL;
END;

(*Al inicializar la lista L, hay que recordar que esta entra como parametro y que al ser una variable, ya esta existe, lo unico que se hace es que la lista se inicializa en el valor NIL.*)...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • 4 LISTAS SIMPLES CON PUNTEROS
  • Listas, Pilas Y Puntero
  • Punteros
  • Punteros
  • Punteros
  • Puntero
  • Punteros
  • Punteros

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS