Está en la página 1de 36

Figure:

LISTAS PILAS COLAS


ARBOLES BINARIOS

Copyright © 2003 Pearson Education, Inc. Slide 7-1


Fichas ordenas en orden alfabético y por otro
criterio, usando hilos

: hilo de inicio

: hilo de ficha

: hilo final

ficha + hilo que sale de ella = nodo


hilo naranjo = puntero inicio
hilo verde = puntero de nodo que apunta a “nada”
Copyright © 2003 Pearson Education, Inc. Slide 7-2
usando hilos, equivalencia en Java

: hilo de inicio Nodo inicio;

: hilo de ficha class Nodo {


int x;
Nodo siguiente;
}

: hilo final es el puntero de un objeto que


tiene asignado el valor null
apunta a null:

Nodo x = new Nodo(…);


x.siguiente = null;

Copyright © 2003 Pearson Education, Inc. Slide 7-3


Premios Novel ordenados por título pero enlazados
por autor

Copyright © 2003 Pearson Education, Inc. Slide 7-4


El arreglo Readings almacenado en memoria a
aprtir de la dirección x

Copyright © 2003 Pearson Education, Inc. Slide 7-5


Arreglo bidimensional con cuatro filas y cinco
columnas

Copyright © 2003 Pearson Education, Inc. Slide 7-6


Nombres almacenados en memoria como una lista
contigua

Copyright © 2003 Pearson Education, Inc. Slide 7-7


Estructura de una lista encadenada

Copyright © 2003 Pearson Education, Inc. Slide 7-8


Borrando un elemento de una lista encadenada

Copyright © 2003 Pearson Education, Inc. Slide 7-9


Insertando un elemento de una lista encadenada

Copyright © 2003 Pearson Education, Inc. Slide 7-10


Procedimiento para imprimir una lista encadenada

Copyright © 2003 Pearson Education, Inc. Slide 7-11


Usando una
pila (stack)
para imprimir
una lista en
orden inverso

Copyright © 2003 Pearson Education, Inc. Slide 7-12


Usando la
pila para
imprimir en
orden inverso

Copyright © 2003 Pearson Education, Inc. Slide 7-13


Procedimiento (que usa una pila auxiliar) para
imprimir una lista encadenada en orden inverso

Copyright © 2003 Pearson Education, Inc. Slide 7-14


Una pila en memoria

Copyright © 2003 Pearson Education, Inc. Slide 7-15


Cola implementada con punteros head y tail

Copyright © 2003 Pearson Education, Inc. Slide 7-16


Cola que se “arrastra” a través de la memoria

Copyright © 2003 Pearson Education, Inc. Slide 7-17


Cola circular
que contiene
las letras F
hasta O
realmente
almacenada
en la memoria

Copyright © 2003 Pearson Education, Inc. Slide 7-18


Una cola circular en su forma conceptual en la cual la
última celda es “adyacente” a la primera celda

Copyright © 2003 Pearson Education, Inc. Slide 7-19


Un organigrama ejemplo

Copyright © 2003 Pearson Education, Inc. Slide 7-20


Terminología de árboles

Copyright © 2003 Pearson Education, Inc. Slide 7-21


Estructura de un nodo en un árbol binario

Copyright © 2003 Pearson Education, Inc. Slide 7-22


Estructura conceptual y la organización real de un
árbol binario que usa sistema de lista encadenada

Copyright © 2003 Pearson Education, Inc. Slide 7-23


Figure 7.20: A tree stored without pointers

Copyright © 2003 Pearson Education, Inc. Slide 7-24


Vista conceptual de árbol desbalanceado y su
almacenamiento como arreglo

Copyright © 2003 Pearson Education, Inc. Slide 7-25


Las letras A a la M arregladas en un árbol
ordenado

Copyright © 2003 Pearson Education, Inc. Slide 7-26


Los árboles sucesivamente menores en la búsqueda
de la letra J

Copyright © 2003 Pearson Education, Inc. Slide 7-27


Imprimir un árbol en orden alfabético

Copyright © 2003 Pearson Education, Inc. Slide 7-28


Procedimiento recursivo Java para imprimir un
árbol binario
public void imprimeArbol(Nodo r){ class Nodo {
if(r!=null){ int x;
if(r.izq!=null){ Nodo izq;
imprimeArbol(r.izq); Nodo der;
} Nodo(int xx){
System.out.println(r.x); x=xx;
if(r.der!=null){ }
imprimeArbol(r.der); }
}
}
}

Copyright © 2003 Pearson Education, Inc. Slide 7-29


Insertar una M en la lista
B, E, G, H, J, K, N, P
almacenada como árbol binario

Copyright © 2003 Pearson Education, Inc. Slide 7-30


M insertada en la lista
B, E, G, H, J, K, N, P
almacenada como árbol binario

Copyright © 2003 Pearson Education, Inc. Slide 7-31


Procedimiento para insertar una nueva entrada en
árbol binario (1)

public void insertarNodo(int xx){


if(raiz==null){
raiz=new Nodo(xx);
} else {
insertar(raiz,xx);
}
}

Copyright © 2003 Pearson Education, Inc. Slide 7-32


Procedimiento para insertar una nueva entrada en
árbol binario (2)
void insertar(Nodo r, int xx){
if(xx==r.x)return;
if(xx<r.x){
if(r.izq==null)r.izq=new Nodo(xx);
else insertar(r.izq,xx);
return;
}
if(xx>r.x){
if(r.der==null)r.der=new Nodo(xx);
else insertar(r.der,xx);
return;
}
}

Copyright © 2003 Pearson Education, Inc. Slide 7-33


Búsqueda binaria en una lista organizada como
árbol binario

Copyright © 2003 Pearson Education, Inc. Slide 7-34


Una pila de enteros en C++

Copyright © 2003 Pearson Education, Inc. Slide 7-35


Pila de enteros implementada en Java

Copyright © 2003 Pearson Education, Inc. Slide 7-36

También podría gustarte