Está en la página 1de 11

Semana 04 LISTAS SIMPLEMENTE ENLAZADAS

Ciencias de la Computacin III Prof. Hugo Vega Huerta.

Conceptos de Listas

Una lista es una coleccin de elementos, generalmente, llamados nodos. En general un nodo tiene 2 partes: Un campo de informacion que ser del tipo de datos que se quiera almacenar en la lista. Un campo de tipo apuntador que se utiliza para establecer un enlace con otro nodo de la lista. Si es el ultimo nodo su valor es null. Ya no es necesario que los nodos se guarden en forma contigua.
ptrcont 5

null

Operaciones con Listas

Crear: Define el primer elemento de la lista. Insertar: Que coloca nuevos nodos al principio o al final del nodo dado. Recorrer: Que visita o atiende todos o algunos de los nodos de la lista bajo un criterio dado. Eliminar: Que borra un nodo dado. Se puede eliminar el 1 nodo, el ultimo, el que tenga un info x o el anterior o posterior al que tenga una info x.

Listas simplemente enlazadas


L a1
a2 a3 a4 a5

L
458 458 500 500 850 850 350 350 993 933

a1

a2

a3

a4

a5 ni

Listas simplemente enlazadas


Lista Vaca

L nil

Listas simplemente enlazadas


Insercin
Parmetros: Lista (L) , elemento (e), posicin (p) La posicin debe ser vlida (1 <= p <= (Long(L) + 1) Considerar: Insercin en primera posicin, al final de la lista, en lista vaca Procedimiento: Crear el nodo con el elemento Localizar la posicin Actualizar los apuntadores involucrados

Listas simplemente enlazadas


Insercin
L a1 a2
Q

a3

a4

a5

ax

Ant L
a1 a2

Act
a3 a4 a5

Q ax

Listas simplemente enlazadas


Insercin Proc Insertar(in-out L: Lista; in pos: integer; in e: Tipo_Info) Var Act, Ant, Q: ptr_Nodo; i: integer; begin Act L; i 1; Crear(Q); Q.elemento e; while (i < pos) do Ant Act; Act Act.prox; i i + 1; end if Act = L then L Q; else Ant.prox Q; end Q.prox Act; end

Listas simplemente enlazadas


Eliminacin Parmetros: Lista (L) , elemento (e), posicin (p) La posicin debe ser vlida (1 <= p <= (Long(L))

Considerar: Eliminacin en primera posicin, al final de la


lista Procedimiento: Localizar la posicin Actualizar los apuntadores involucrados Liberar el espacio ocupado por el nodo

Listas simplemente enlazadas


Eliminacin
Ant
L

Act

a1

a2

a3

a4

a5

Ant L

Act

a1

a2

a3

a4

a5

Listas simplemente enlazadas


Eliminacin Proc Eliminar (in-out L: Lista; in pos: integer) Var Act, Ant: ptr_Nodo; i: integer; begin Act L; i 1; while (i < pos) do Ant Act; Act Act.prox; i i + 1; end if Act = L then L Act.prox; else Ant.prox Act.prox; end Liberar(Act); end

También podría gustarte

  • Algoritmos 2
    Algoritmos 2
    Documento1 página
    Algoritmos 2
    Manuel Jesús LA
    Aún no hay calificaciones
  • Tarea1 Fluidos
    Tarea1 Fluidos
    Documento6 páginas
    Tarea1 Fluidos
    Manuel Jesús LA
    Aún no hay calificaciones
  • Algoritmos 1
    Algoritmos 1
    Documento1 página
    Algoritmos 1
    Manuel Jesús LA
    Aún no hay calificaciones
  • Base de Datos 3
    Base de Datos 3
    Documento1 página
    Base de Datos 3
    Manuel Jesús LA
    Aún no hay calificaciones
  • Base de Datos
     Base de Datos
    Documento5 páginas
    Base de Datos
    Manuel Jesús LA
    Aún no hay calificaciones
  • Base de Datos 2
     Base de Datos 2
    Documento6 páginas
    Base de Datos 2
    Manuel Jesús LA
    Aún no hay calificaciones
  • Sem An A 05
    Sem An A 05
    Documento10 páginas
    Sem An A 05
    Manuel Jesús LA
    Aún no hay calificaciones
  • Trabajo 6
    Trabajo 6
    Documento5 páginas
    Trabajo 6
    Manuel Jesús LA
    Aún no hay calificaciones
  • Trabajo 7
    Trabajo 7
    Documento7 páginas
    Trabajo 7
    Manuel Jesús LA
    Aún no hay calificaciones
  • Sem An A 03
    Sem An A 03
    Documento8 páginas
    Sem An A 03
    Manuel Jesús LA
    Aún no hay calificaciones
  • Tarea 5
    Tarea 5
    Documento2 páginas
    Tarea 5
    Manuel Jesús LA
    Aún no hay calificaciones
  • Estructura de Datos
    Estructura de Datos
    Documento6 páginas
    Estructura de Datos
    Manuel Jesús LA
    Aún no hay calificaciones
  • Sem An A 01
    Sem An A 01
    Documento6 páginas
    Sem An A 01
    Manuel Jesús LA
    Aún no hay calificaciones
  • Sem An A 02
    Sem An A 02
    Documento9 páginas
    Sem An A 02
    Manuel Jesús LA
    Aún no hay calificaciones
  • Trabajo 2
    Trabajo 2
    Documento3 páginas
    Trabajo 2
    Manuel Jesús LA
    Aún no hay calificaciones
  • Trabajo 4
    Trabajo 4
    Documento4 páginas
    Trabajo 4
    Manuel Jesús LA
    Aún no hay calificaciones
  • Trabajo 3
    Trabajo 3
    Documento9 páginas
    Trabajo 3
    Manuel Jesús LA
    Aún no hay calificaciones