// 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
}