class List
Attributes
head[R]
Punteros head y tail
tail[R]
Punteros head y tail
Public Class Methods
new(head, tail)
click to toggle source
Creamos una lista e inicializamos los valores
# File lib/prct06/lista.rb, line 11 def initialize (head, tail) @head = head @tail = tail end
Public Instance Methods
each() { |value| ... }
click to toggle source
Metodo enumerable
# File lib/prct06/lista.rb, line 111 def each(&block) puntero=@head while (puntero!=nil) do yield puntero.value puntero=puntero.nest end end
extraer_por_cabeza()
click to toggle source
Metodo extraer nodo por cabeza
# File lib/prct06/lista.rb, line 47 def extraer_por_cabeza if(@head==nil) puts "No hay nada que extraer (lista vacia)" else aux=@head @head=@head.nest if(head!=nil) @head.prev=nil end aux.nest=nil if(@head==nil) @tail=nil end end return aux end
extraer_por_cola()
click to toggle source
Metodo extraer nodo por cola
# File lib/prct06/lista.rb, line 67 def extraer_por_cola if(@tail==nil) puts "No hay nada que extraer (lista vacia)" else aux=@tail @tail=@tail.prev aux.prev=nil if(@tail!=nil) @tail.nest=nil end end return aux end
insertar_por_cabeza(value)
click to toggle source
Metodo insertar nodo por cabeza
# File lib/prct06/lista.rb, line 32 def insertar_por_cabeza(value) nodo=Node.new(value,nil,nil) if(@head==nil) @tail=nodo @head=nodo else nodo.nest=@head @head.prev=nodo @head=nodo nodo.prev=nil end end
insertar_por_cola(value)
click to toggle source
Metodo insertar nodo por cola
# File lib/prct06/lista.rb, line 17 def insertar_por_cola(value) nodo=Node.new(value,nil,nil) if(@tail==nil) @tail=nodo @head=nodo else nodo.prev=@tail @tail.nest=nodo @tail=nodo nodo.nest=nil end end
ordenacion_each()
click to toggle source
# File lib/prct06/lista.rb, line 138 def ordenacion_each @resultado = self.map { |x| x } indice=0 @resultado.each do |x| var = x i = indice indice2=indice + 1 @resultado[indice2..@resultado.length-1].each do |y| if var > y var = y i = indice2 end indice2+=1 end @resultado[i] = x @resultado[indice] = var indice+=1 end @resultado end
ordenacion_for()
click to toggle source
# File lib/prct06/lista.rb, line 119 def ordenacion_for @resultado = self.map { |x| x } for x in 0..self.count-1 var = @resultado[x] i = x for y in x + 1..self.count-1 if var > @resultado[y] var = @resultado[y] i = y end end @resultado[i] = @resultado[x] @resultado[x] = var end @resultado end
to_s()
click to toggle source
Metodo convertir a cadena
# File lib/prct06/lista.rb, line 92 def to_s puntero=@head cadena='[' if(@head!=nil) while (puntero!= nil) do cadena+=puntero.value.to_s + ']' if(puntero.nest!=nil) puntero=puntero.nest cadena+= '[' else puntero=nil end end end end
vacio()
click to toggle source
Metodo comprobar si esta vacĂo
# File lib/prct06/lista.rb, line 83 def vacio if(@tail==nil) return true else return false end end