Last active
January 20, 2017 15:05
-
-
Save donpandix/97a79424c5510227e610 to your computer and use it in GitHub Desktop.
Implementación de estructura de datos, lista enlazada simple con inserción y recorrido
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Código actualizado a Swift 3.0.1 | |
print("Esto es para estudio de estructura de datos \n") | |
print("===========================================\n") | |
// Lista enlazada simple | |
// Esto es un objeto para lista enlazada | |
class Nodo { | |
// valor numerico del nodo | |
var valor:Int32! | |
// Valor del nodo siguiente, se inicializa con nil | |
var next:Nodo! | |
// constructor de la clase | |
init ( valor:Int32 ) { | |
self.valor = valor | |
} | |
} | |
// Nodo que almacenara el principio de la lista | |
var nodoInicial:Nodo! | |
// Nodo que servira para apuntar al último elemento de la lista | |
var nodoFinal:Nodo! | |
var i:Int32! | |
// asigno 16 elementos a la cola | |
for i in 1...16 { | |
// Genero el nuevo nodo para ingresarlo a la lista | |
var miNodo:Nodo = Nodo(valor: Int32(i) ); | |
// En caso que sea el primer elemento | |
if ( nodoInicial == nil ) { | |
// Tanto la cabeza como el final de la lista apuntan al mismo nodo | |
nodoInicial = miNodo | |
nodoFinal = miNodo | |
} else { | |
// asigno al elemento final el nuevo nodo creado | |
nodoFinal.next = miNodo | |
// el puntero del nodo | |
nodoFinal = miNodo | |
} | |
} | |
// Ciclo para validar los datos almacenados en la cola | |
var nodo = nodoInicial | |
while nodo != nil { // Mientras el nodo no sea nil, continúa | |
print( "\(nodo!.valor!) " ) | |
nodo = nodo!.next | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment