Clase 01 de abril del 2024
Las estructuras :
tipo
colas y simplemente ligas en
especial doblemente
ligadas
pilas
información
-
- liga al elemento
siguiente
--
>
nodo
tiene
cuando un nodo una sola
liga es simplemente ligado
Inicio fiv
Lista ---
Final
300 SOO 900
- 300
~
600 700 900 NULL
& > 7
506 600 700 900 =
Cola : Queue
-
Permite 2
operaciones
.
1
enquere "encolar" tomo un nodo y lo coloco al final de la Cola
al final un nodo
.
2
dequeue agrega
Inicio fiv ~ 01 de abril del 2024
Lista --- Encolar"
300 500 1000
- 300
- -
> encolar
600 700 900
K & L >
P > A >
- F &
506 600 700 900 100G E
ántiguo
más que
entró Nod más reciente
Estructuras último que
llegó
FIFO "el entra es el Último que entró
primero que 11
salir
primero que va a
First in
First out
Desencolar
Inicio fiv
Lista - -
300 600 1000
- 300
- -
> encolar
↓
600 700 900
& >
7
1000 -
>
506 600 700 900 100G E
este nodo se va !
El concepto puro de cola son esas dos operaciones
Lo retira
Doblemente
ligada 01 de abril de 2024
No hacia delante
Ahora
puedo ir
nodo doblemente
ligado y hacia atrás
- -
ant
Sig
Cuando realizar más operaciones borrar, añadir medio
se
pueden como en
lista
es una
general Borrar el Iro de la lista
Inicio fin
Lista
300 600 1000
- 300
- -
> encolar
f
600 700 900
K & L >
P > A 0
,
-
> F &
300 600 700
↑
900 100G =
500
p
Para retirar
lista +
Inicio ;
p
=
lista lista - Inicio = 600
p +
sig :
=
Inicio
+ NULL la retira de la lista
p sig
=
Inicio fin
Lista
free(p) ; 300 600 1000
- 300
- -
> encolar
f
700 900
K Not L >
P > A 0 -
> F
E
,
&
506 600 700
↑
900 100G =
500
p
Borrar el último nodo
que
entró 01 de abril de 2014
Si la lista no está vacía
toda antes del final
-
recorrer mi lista hasta una
posición
p
=
Lista - MICIO ; p 600
fin) < ! 1000
(p+sig lista
=
While ! = +
p
=
+
p sig ; ~ al salir
apuntará al
penúltimo
elemento
3
la lista
recorremos hasta encontrar el
penúltimo elemento
del nodo que voy retirar
apuntador vardar la dirección a
q
= lista - fin ; I
en
a
les lo mismo
-
//q =
p
+ sig ;
"Ya tiene
de A no
+
p sig
=
NULL ; campo siguiente ,
Sea NULL siguiente"
lista >
- fin =
P
↑
, actualizamos
el final
free (9) ;
Inicio fin
Lista
300 600 900
- 300
- -
>
-
f
-
600 700 900
K & L >
P 7 A 1000 F
E
&
600
506
=7 900 100G =
-
..
- T
queremos
retirar lo
-
--
-
1000
P 900 9
V
almacenamos la dirección
eliminar la
para
después I
Vamos a devolver la
dirección/resulta más
práctico
100 Agregar un nodo al Inicio 01 de febrero de 24
Lista Is 500 300
~ -
F 400 G 600 H 300 k pull
500 400 600 500
W quiero insertarla al Inicio
↑ 700 E
700
pr
lista- Inicio ; el el 500
-sig de
=
>
- sig copia en
campo
100
Lista & 700 300
C&
-
F 400 G 600 H 300 k pull
500 400 600 500
W 00
↑ > = lista - Inicio ;
700
p- sig
Lista - Inicio
pi
=
700
Estudian
pr *
Lista - Inicio
pi
=
Borrar de enmedio un solo nodo
1. La Lista No está vació
.
2 La lista No tiene un solo element o
Caso : la lista tiene más de 2 elementos
3. Si el elemento que quiero borrar a F y K, ya lo tenemos
100
Lista & 500 300
~ - -
"E
F 400 > G 600 - >
H O > k po
-
-
500 400 600 500
Queremos borrar el nodo que tiene la H
1
. Encontrar la H
lista Inicio ,
H recorremos la lista
p
= -
hasta la
penúltima posición
while (p-into ! =
clave
p p
= -
sig ;
Lista - Inicio ;
9
while (q +
sig
! =
p) Se
queda en una
posición
antes de
q
=
9 - p
sigi
100
Lista & 500 300
~ - -
F 400 G 600 >
H 00 k Null
E
>
- -
>
-
500 400 600 500
↑ ↑
400 600
q
P
lista Inicio ,
p
= -
while (p-into ! =
clave
p p
= -
sig ;
Lista - Inicio ;
9
while
(+sig ! p) avanza
a
hasta un
campo
antes de
p
9
=
-
q sigi
+ sig ;
=
sig p +
q
p-
>
sig
=
NULL ;
limpieza
100
Is
free(p) Lista
500 300
-
:
~ -
F 400 G 300 >
H Null K Null
E
>
- -
E
-
500 400 600 500
↑ ↑
400 600
q
P
Inserción
el
proporcional-
nuevo nodo
posicion
-
jueves
(nodo, clave (
función recibe dos cosas
adelante o
después
elijo
Quiere