Class: ListaDoble

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/Alimento/lista_doble.rb

Overview

Returns objeto convertidos con el formato string

Returns:

  • (String)

    objeto convertidos con el formato string

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeListaDoble

Contructor de la clase Lista



13
14
15
16
# File 'lib/Alimento/lista_doble.rb', line 13

def initialize
    @cabeza = nil
    @cola = nil
end

Instance Attribute Details

#cabezaObject



153
154
155
# File 'lib/Alimento/lista_doble.rb', line 153

def cabeza
  @cabeza
end

#colaObject

Returns the value of attribute cola



154
155
156
# File 'lib/Alimento/lista_doble.rb', line 154

def cola
  @cola
end

Instance Method Details

#eachString

Returns objeto convertidos con el formato string del recorrido de los nodos

Returns:

  • (String)

    objeto convertidos con el formato string del recorrido de los nodos



20
21
22
23
24
25
26
# File 'lib/Alimento/lista_doble.rb', line 20

def each
    nodo_aux = @cabeza
    while nodo_aux != nil
        yield nodo_aux.value
        nodo_aux = nodo_aux.next_node
    end
end

#extraerString

Returns objeto convertidos con el formato string del nodo eliminado

Returns:

  • (String)

    objeto convertidos con el formato string del nodo eliminado



124
125
126
127
128
129
130
131
132
133
134
# File 'lib/Alimento/lista_doble.rb', line 124

def extraer
    if(is_empty())
        return nil
    elsif
        node_aux = @inicio
        @inicio = @inicio.next_node
        node_aux.next_node = nil
        node_aux.prev_node = nil
        return node_aux.value
    end
end

#get_finalString

Returns objeto convertidos con el formato string del nodo que quiere mostrar

Returns:

  • (String)

    objeto convertidos con el formato string del nodo que quiere mostrar



36
37
38
# File 'lib/Alimento/lista_doble.rb', line 36

def get_final
   return @final
end

#get_inicioString

Devuelve el elemento inicial de la lista

Returns:

  • (String)

    objeto convertidos con el formato string del nodo que quiere mostrar



30
31
32
# File 'lib/Alimento/lista_doble.rb', line 30

def get_inicio
   return @cabeza
end

#insertar(elemento) ⇒ String

Returns objeto convertidos con el formato string del nodo que quiere añadir

Parameters:

  • elemento (String)

    nodo que quiere añadir

Returns:

  • (String)

    objeto convertidos con el formato string del nodo que quiere añadir



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/Alimento/lista_doble.rb', line 55

def insertar(elemento) #inserta por el inicio
    nodo_aux = Nodo.new(elemento, nil, nil)

    #if(is_empty())


    if (@cabeza == nil && @cola == nil)
        @cabeza = nodo_aux
        @final = nodo_aux
        @cabeza.next_node = nil
        @cabeza.prev_node = nil
        #@final = @inicio
    elsif
        aux = @cabeza
        @cabeza = nodo_aux
        @cabeza.next_node = aux
        @cabeza.prev_node = nil
        aux.prev_node = @cabeza
    end
end

#insertar_final(elemento) ⇒ String

Returns objeto convertidos con el formato string del nodo añadido

Parameters:

  • elemento (String)

    nodo que quieres añadir a la cola

Returns:

  • (String)

    objeto convertidos con el formato string del nodo añadido



79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# File 'lib/Alimento/lista_doble.rb', line 79

def insertar_final(elemento)
    nodo_aux = Node.new(elemento, nil, nil)
    if(is_empty())
        @cabeza = nodo_aux
        @final = nodo_aux
        @cabeza.next_node = nil
        @cabeza.prev_node = nil
        @final.prev_node = nil
        @final.next_node = nil
        #@final = @inicio
    elsif
        aux = @final
        @final = nodo_aux
        @final.prev_node = aux
        @final.next_node = nil
    end
end

#insertar_muchos(vector) ⇒ String

Returns objeto convertidos con el formato string de los nodos añadidos

Parameters:

  • vector (String)

    insertar muchos nodos y llama a insertar un nodo

Returns:

  • (String)

    objeto convertidos con el formato string de los nodos añadidos



100
101
102
103
104
105
106
107
# File 'lib/Alimento/lista_doble.rb', line 100

def insertar_muchos(vector) #inserta muchos por el inicio
    i=0

    while i<vector.length
        self.insertar(vector[i])
        i=i+1
    end
end

#insertar_muchos_final(vector) ⇒ String

Inserta varios elementos por el final de la lista Se le pasa como argumento un vector con los elementos a insertar en la lista

Parameters:

  • vector (String)

    insertar muchos nodos y llama a insertar un nodo

Returns:

  • (String)

    objeto convertidos con el formato string de los nodos añadidos



113
114
115
116
117
118
119
120
# File 'lib/Alimento/lista_doble.rb', line 113

def insertar_muchos_final(vector)
    i=0

    while i<vector.length
        self.insertar_final(vector[i])
        i=i+1
    end
end