Project

General

Profile

Código e Implementación » History » Version 14

Cesar Jimenez, 09/24/2023 04:04 AM

1 1 Cesar Jimenez
h1. ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤWikipedia
2 1 Cesar Jimenez
3 1 Cesar Jimenez
4 1 Cesar Jimenez
!logoPRO.png!
5 1 Cesar Jimenez
6 1 Cesar Jimenez
7 1 Cesar Jimenez
----
8 1 Cesar Jimenez
9 1 Cesar Jimenez
+*Grupo A:*+
10 1 Cesar Jimenez
>  Integrantes: Cristian Sánchez, Jean Pier Duran, Sergio Rabanal, Valentina Álvarez, César Jiménez
11 1 Cesar Jimenez
>  Nombre del Producto: Machine EV3 G
12 1 Cesar Jimenez
>  Modulo: Proyecto I
13 1 Cesar Jimenez
>  Docente: Humberto Urrutia
14 1 Cesar Jimenez
>  Fecha de Inicio: 2023-08-14
15 1 Cesar Jimenez
>  Fecha de Termino: 2023-11-30
16 1 Cesar Jimenez
17 1 Cesar Jimenez
----
18 1 Cesar Jimenez
19 1 Cesar Jimenez
*ㅤㅤㅤㅤㅤㅤㅤÍndice:*
20 1 Cesar Jimenez
* [[Introducción]]
21 1 Cesar Jimenez
* [[Descripción y Objetivos]]
22 1 Cesar Jimenez
* [[Organización y Planificación]]
23 1 Cesar Jimenez
* [[Análisis y Diseño]]
24 1 Cesar Jimenez
* [[Código e Implementación]]
25 2 Cesar Jimenez
* [[Bibliografía]]
26 3 Cesar Jimenez
27 11 Cesar Jimenez
h1. ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤInsertar Código del Proyecto
28 3 Cesar Jimenez
29 5 Cesar Jimenez
<pre><code class="ruby">
30 14 Cesar Jimenez
public class Main{
31 14 Cesar Jimenez
    public static void main(String[] args){
32 14 Cesar Jimenez
        System.out.println("te sigo queriendo como el primer dia");
33 14 Cesar Jimenez
        ListaDobleEnlace<Integer> numeros = new ListaDobleEnlace<>();
34 14 Cesar Jimenez
        numeros.insertar_al_inicio(10);
35 14 Cesar Jimenez
        numeros.insertar_al_inicio(6);
36 14 Cesar Jimenez
        numeros.insertar_al_inicio(3);
37 14 Cesar Jimenez
        numeros.insertar_al_inicio(2);
38 14 Cesar Jimenez
        numeros.insertar_al_inicio(-1);
39 14 Cesar Jimenez
        numeros.imprimir();
40 14 Cesar Jimenez
        
41 14 Cesar Jimenez
        System.out.println("\n Tamaño de la Lista: "+numeros.size());
42 14 Cesar Jimenez
        
43 14 Cesar Jimenez
        numeros.insertar_al_final(15);
44 14 Cesar Jimenez
        numeros.insertar_al_final(20);
45 14 Cesar Jimenez
        numeros.imprimir();
46 14 Cesar Jimenez
        
47 14 Cesar Jimenez
        System.out.println("\nTamaño de la Lista: "+numeros.size());
48 1 Cesar Jimenez
49 14 Cesar Jimenez
        System.out.println("\nContiene el numero: "+numeros.contiene(6));
50 14 Cesar Jimenez
        
51 14 Cesar Jimenez
        System.out.println("\nElemento en la posicion 6 es: "+numeros.obtener_elemento(6));
52 14 Cesar Jimenez
        
53 14 Cesar Jimenez
        numeros.eliminar_en_posicion(5);
54 14 Cesar Jimenez
        numeros.imprimir();
55 14 Cesar Jimenez
        
56 14 Cesar Jimenez
        
57 14 Cesar Jimenez
        
58 14 Cesar Jimenez
    }
59 14 Cesar Jimenez
}
60 1 Cesar Jimenez
61 14 Cesar Jimenez
class Nodo<E>{
62 14 Cesar Jimenez
    E info;
63 14 Cesar Jimenez
    Nodo<E> sgte;
64 14 Cesar Jimenez
    Nodo<E> prev;
65 14 Cesar Jimenez
    public Nodo(Nodo<E> prev,E info,Nodo<E> sgte){
66 14 Cesar Jimenez
        this.prev = prev;
67 14 Cesar Jimenez
        this.info = info;
68 14 Cesar Jimenez
        this.sgte = sgte;
69 1 Cesar Jimenez
    }
70 14 Cesar Jimenez
}
71 1 Cesar Jimenez
72 14 Cesar Jimenez
class ListaDobleEnlace<E>{
73 14 Cesar Jimenez
    Nodo<E> cabecera;
74 14 Cesar Jimenez
    int size = 0;
75 14 Cesar Jimenez
    public ListaDobleEnlace(){
76 14 Cesar Jimenez
        this.cabecera = new Nodo<>(null,null,null);
77 14 Cesar Jimenez
        cabecera.sgte = cabecera;
78 14 Cesar Jimenez
        cabecera.prev = cabecera;
79 14 Cesar Jimenez
    }
80 14 Cesar Jimenez
    
81 14 Cesar Jimenez
    public void insertar_al_inicio(E valor){
82 14 Cesar Jimenez
        Nodo<E> antiguoSiguiente = cabecera.sgte;
83 14 Cesar Jimenez
        Nodo<E> nuevoNodo = new Nodo<>(cabecera,valor,antiguoSiguiente);
84 14 Cesar Jimenez
        cabecera.sgte = antiguoSiguiente.prev = nuevoNodo;
85 14 Cesar Jimenez
        
86 14 Cesar Jimenez
        size ++;
87 14 Cesar Jimenez
    }  
88 14 Cesar Jimenez
    
89 14 Cesar Jimenez
    public void insertar_al_final(E valor){
90 14 Cesar Jimenez
        Nodo<E> antiguoFinal = cabecera.prev;
91 14 Cesar Jimenez
        Nodo<E> nuevoNodo = new Nodo<>(antiguoFinal,valor,cabecera);
92 14 Cesar Jimenez
        cabecera.prev = antiguoFinal.sgte = nuevoNodo;
93 14 Cesar Jimenez
        
94 14 Cesar Jimenez
        size++;
95 14 Cesar Jimenez
    }
96 14 Cesar Jimenez
    
97 14 Cesar Jimenez
    public void insertar_en_posicion(E valor,int k){
98 14 Cesar Jimenez
        Nodo<E> temp = cabecera.sgte;
99 14 Cesar Jimenez
        int cont = 1;
100 14 Cesar Jimenez
        while(temp != cabecera){
101 14 Cesar Jimenez
            if(cont == k){
102 14 Cesar Jimenez
                break;    
103 14 Cesar Jimenez
            }
104 14 Cesar Jimenez
            cont++;
105 14 Cesar Jimenez
            temp = temp.sgte;   
106 14 Cesar Jimenez
        }
107 14 Cesar Jimenez
        Nodo<E> nuevoNodo = new Nodo<>(temp.prev,valor,temp);
108 14 Cesar Jimenez
        temp.prev.sgte = temp.prev = nuevoNodo;
109 14 Cesar Jimenez
        size++;
110 14 Cesar Jimenez
    }
111 14 Cesar Jimenez
    
112 14 Cesar Jimenez
    public void eliminar_al_inicio(){
113 14 Cesar Jimenez
        Nodo<E> temp = cabecera.sgte.sgte;
114 14 Cesar Jimenez
        cabecera.sgte = temp;
115 14 Cesar Jimenez
        temp.prev = cabecera;
116 14 Cesar Jimenez
        size--;
117 14 Cesar Jimenez
    }
118 14 Cesar Jimenez
    
119 14 Cesar Jimenez
    public void eliminar_al_final(){
120 14 Cesar Jimenez
        Nodo<E> temp = cabecera.prev.prev;
121 14 Cesar Jimenez
        cabecera.prev = temp;
122 14 Cesar Jimenez
        temp.sgte = cabecera;
123 14 Cesar Jimenez
        
124 14 Cesar Jimenez
        
125 14 Cesar Jimenez
        size--;
126 14 Cesar Jimenez
    }
127 14 Cesar Jimenez
    
128 14 Cesar Jimenez
    public void eliminar_en_posicion(int k){
129 14 Cesar Jimenez
        Nodo<E> temp = cabecera.sgte;
130 14 Cesar Jimenez
        int cont = 1;
131 14 Cesar Jimenez
        while(temp != cabecera){
132 14 Cesar Jimenez
            if (cont == k){
133 14 Cesar Jimenez
                break;
134 14 Cesar Jimenez
            }
135 14 Cesar Jimenez
            temp = temp.sgte;
136 14 Cesar Jimenez
            cont++;
137 14 Cesar Jimenez
        }
138 14 Cesar Jimenez
        temp.prev.sgte = temp.sgte;
139 14 Cesar Jimenez
        temp.sgte.prev = temp.prev;
140 14 Cesar Jimenez
        
141 14 Cesar Jimenez
        size--;
142 14 Cesar Jimenez
    }
143 14 Cesar Jimenez
    
144 14 Cesar Jimenez
    public E obtener_elemento(int k){
145 14 Cesar Jimenez
        Nodo<E> temp = cabecera.sgte;
146 14 Cesar Jimenez
        int cont = 1;
147 14 Cesar Jimenez
        while(temp != cabecera){
148 14 Cesar Jimenez
            if (cont == k){
149 14 Cesar Jimenez
                return temp.info;
150 14 Cesar Jimenez
            }
151 14 Cesar Jimenez
            temp = temp.sgte;
152 14 Cesar Jimenez
            cont++;
153 14 Cesar Jimenez
        }
154 14 Cesar Jimenez
        return null;
155 14 Cesar Jimenez
    }
156 14 Cesar Jimenez
    
157 14 Cesar Jimenez
    public int buscar(E valor){
158 14 Cesar Jimenez
        Nodo<E> temp = cabecera.sgte;
159 14 Cesar Jimenez
        int cont = 1;
160 14 Cesar Jimenez
        while(temp != cabecera){
161 14 Cesar Jimenez
            if (temp.info.equals(valor)){
162 14 Cesar Jimenez
                return cont;
163 14 Cesar Jimenez
            }
164 14 Cesar Jimenez
            temp = temp.sgte;
165 14 Cesar Jimenez
            cont++;
166 14 Cesar Jimenez
        }
167 14 Cesar Jimenez
        return -1;
168 14 Cesar Jimenez
    }
169 14 Cesar Jimenez
    
170 14 Cesar Jimenez
    public void vaciar(){
171 14 Cesar Jimenez
        cabecera.prev = cabecera.sgte = cabecera;
172 14 Cesar Jimenez
    }
173 14 Cesar Jimenez
    
174 14 Cesar Jimenez
    public boolean contiene(E valor){
175 14 Cesar Jimenez
        Nodo<E> temp = cabecera.sgte;
176 14 Cesar Jimenez
        while(temp != cabecera){
177 14 Cesar Jimenez
            if (valor == temp.info){
178 14 Cesar Jimenez
                return true;
179 14 Cesar Jimenez
            }
180 14 Cesar Jimenez
            temp = temp.sgte;
181 14 Cesar Jimenez
        }
182 14 Cesar Jimenez
        return false;
183 14 Cesar Jimenez
    }
184 14 Cesar Jimenez
    
185 14 Cesar Jimenez
    public void imprimir(){
186 14 Cesar Jimenez
        System.out.println("");
187 14 Cesar Jimenez
        Nodo<E> temp = cabecera.sgte;
188 14 Cesar Jimenez
        // problema encontrado --> se estaba tomando el valor de null de la cabecera como referencia entonces se metio en un bucle interminable 
189 14 Cesar Jimenez
        while(temp != cabecera){
190 14 Cesar Jimenez
            System.out.print(temp.info + " <-> ");
191 14 Cesar Jimenez
            temp = temp.sgte;
192 14 Cesar Jimenez
        }
193 14 Cesar Jimenez
    
194 14 Cesar Jimenez
    System.out.print("null");
195 14 Cesar Jimenez
    }
196 14 Cesar Jimenez
    
197 14 Cesar Jimenez
    public int size(){
198 14 Cesar Jimenez
        return size;
199 1 Cesar Jimenez
    }
200 1 Cesar Jimenez
}
201 1 Cesar Jimenez
202 1 Cesar Jimenez
203 1 Cesar Jimenez
</code></pre>