Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porMario Mendoza Navarrete Modificado hace 10 años
1
LISTA ENCADENADAS
2
DEFINICIÓN Las listas están formadas por una serie de nodos; cada nodo tienen un campo de información y un apuntador (puntero) al siguiente nodo de la lista. list info(p) next(p) nodo(p) nil
3
OPERACIONES BÁSICAS Una operación básica es la de obtener un nodo vacío. Esta operación se denomina getnode. La operación regresa un apuntador al nodo vacío. La operación complementaria regresa un nodo al sistema, esta operación es llamada freenode(p) y libera el nodo apuntado por p.
4
OPERACIÓN PUSH La operación push, inserta un nodo nuevo a la cabeza de una lista SUBRUTINA PUSH(X:ITEM; LIST:LISTA) 1. P GETNODE 2. INFO(P) X 3. NEXT(P) LIST 4. LIST P P 1 2 3 4 P X LIST P X P X Y Y
5
OPERACIÓN POP La operación pop elimina el nodo que se encuentra en la cabeza de la lista. FUNCION POP(LIST LISTA) REGRESA UN ELEMENTO DE LA LISTA 1. P LIST 2. LIST NEXT(P) 3. X INFO(P) 4. FREENODE(P) 5. REGRESA X 1 24 X A LIST P AY P AY 3 P AY
6
OPERACIÓN INSAFTER Algoritmo para insertar un nodo después del nodo P. SUBRUTINA INSAFTER(P:APUNTADOR,X:..) 1. Q GETNODE 2. INFO(Q) X 3. NEXT(Q) NEXT(P) 4. NEXT(P) Q
7
INSAFTER 12 4 3 X Q Q XQ P AYZ XQ P AYZ XAY Z Resultado:
8
ALGORITMO DELAFTER Algoritmo para eliminar el nodo después del nodo P. SUBRUTINA DELAFTER(P:APUNTADOR;X:..) 1. Q NEXT(P) 2. X INFO(Q) 3. NEXT(P) NEXT(Q) 4. FREENODE(Q)
9
DELAFTER 1 P AY Q X Y 2 B P AY Q B 3
10
ALGORITMO PARA LA CREACIÓN DE UNA LISTA ORDENADA SUBRUTINA PLACE(X:INFO; LIST:APUNTADOR) 1. FOUND FALSE 2. P LIST 3. Q NIL 4. MIENTRAS (P<>NIL) AND (NOT FOUND) HACER a. SI X<=INFO(P) ENTONCES 1. FOUND FALSE b. ELSE 1. Q P 2. P NODE[P].NEXT 5. SI Q=NIL ENTONCES a. PUSH(LIST,X) 6. ELSE b. INSAFTER(Q,X)
11
Representación de polinomios Un polinomio en (x, y, z) puede representarse como una lista. En cada nodo se almacena el exponente de cada variable y el valor del coeficiente. Por tanto cada nodo de la lista será un registro con los campos: C - para el coeficiente y X, Y, Z - para los exponentes de x, y, z respectivamente.
12
FUNCION POLYINSERT(I:INFOTYPE;FIRST:NODEPTR) REGRESA NODEPTR 1. SI FIRST=NIL ENTONCES a. PUSH(I,FIRST) 2. SINO a. A INFO(FIRST).X b. B INFO(FIRST).Y c. C INFO(FIRST).Z d. SI (A < I.X) OR ((A=I.X)AND(B<I.Y)) OR ((A=I.X) AND (B=I.Y) AND (C<I.Z)) THEN 1. PUSH(I,FIRST) e. SINO 1. S FIRST 2. FOUND FALSO ALGORITMO DE INSERCIÓN EN POLINOMIO
13
3. MIENTRAS (NEXT(S)<>NIL) AND (NOT FOUND) HACER a. Q NEXT(S) b. A INFO(Q).X c. B INFO(Q).Y d. SI (A < I.X) OR ((A=I.X)AND(B<I.Y)) OR ((A=I.X) AND (B=I.Y) AND (C<I.Z)) ENTONCES 1. S NEXT(S) e. SINO 1. INSAFTER(S,I) 2. FOUND VERDADERO 3. SI NOT FOUND ENTONCES a. INSAFTER(S,I) 4. REGRESA FIRST ALGORITMO DE INSERCIÓN EN POLINOMIO CONTINUACIÓN
14
Derivada de un polinomio FUNCION POLYDER(POLY:NODEPTR) REGRESA NODEPTR 1. P POLY 2. QX NIL 3. MIENTRAS P<>NIL HACER a. I INFO(P) b. XP I.X c. SI XP<>0 ENTONCES 1. I.C I.C*I.X 2. I.X I.X-1 3. QX POLYINSERT(I,QX) d. P NEXT(P) 4. REGRESA QX
15
Evaluación de un polinomio FUNCION POLYEVAL(POLY:NODEPTR; X1,Y1,Z1:REAL) REGRESA REAL 1. P POLY 2. VALOR 0 3. MIENTRAS P<>NIL HACER a. I INFO(P) b. VALOR VALOR + I.C*POT(X1,I.X)* POT(X1,I.Y)*POT(Z1,I.Z) c. P NEXT(P) 4. REGRESA VALOR
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.