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