Código e Implementación » History » Version 14
Version 13 (Cesar Jimenez, 09/17/2023 03:12 AM) → Version 14/41 (Cesar Jimenez, 09/24/2023 04:04 AM)
h1. ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤWikipedia
!logoPRO.png!
----
+*Grupo A:*+
> Integrantes: Cristian Sánchez, Jean Pier Duran, Sergio Rabanal, Valentina Álvarez, César Jiménez
> Nombre del Producto: Machine EV3 G
> Modulo: Proyecto I
> Docente: Humberto Urrutia
> Fecha de Inicio: 2023-08-14
> Fecha de Termino: 2023-11-30
----
*ㅤㅤㅤㅤㅤㅤㅤÍndice:*
* [[Introducción]]
* [[Descripción y Objetivos]]
* [[Organización y Planificación]]
* [[Análisis y Diseño]]
* [[Código e Implementación]]
* [[Bibliografía]]
h1. ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤInsertar Código del Proyecto
<pre><code class="ruby">
public class Main{ VerificadorParentesis {
public static void main(String[] args){ boolean verificarParentesis(String expresion) {
System.out.println("te sigo queriendo como el primer dia");
ListaDobleEnlace<Integer> numeros = new ListaDobleEnlace<>();
numeros.insertar_al_inicio(10);
numeros.insertar_al_inicio(6);
numeros.insertar_al_inicio(3);
numeros.insertar_al_inicio(2);
numeros.insertar_al_inicio(-1);
numeros.imprimir();
System.out.println("\n Tamaño de la Lista: "+numeros.size());
numeros.insertar_al_final(15);
numeros.insertar_al_final(20);
numeros.imprimir();
System.out.println("\nTamaño de la Lista: "+numeros.size());
System.out.println("\nContiene el numero: "+numeros.contiene(6));
System.out.println("\nElemento en la posicion 6 es: "+numeros.obtener_elemento(6));
numeros.eliminar_en_posicion(5);
numeros.imprimir();
}
}
class Nodo<E>{
E info;
Nodo<E> sgte;
Nodo<E> prev;
public Nodo(Nodo<E> prev,E info,Nodo<E> sgte){
this.prev = prev;
this.info = info;
this.sgte = sgte;
}
}
class ListaDobleEnlace<E>{
Nodo<E> cabecera;
int size contador = 0;
public ListaDobleEnlace(){
this.cabecera = new Nodo<>(null,null,null);
cabecera.sgte = cabecera;
cabecera.prev = cabecera;
}
public void insertar_al_inicio(E valor){
Nodo<E> antiguoSiguiente = cabecera.sgte;
Nodo<E> nuevoNodo = new Nodo<>(cabecera,valor,antiguoSiguiente);
cabecera.sgte = antiguoSiguiente.prev = nuevoNodo;
size ++;
}
public void insertar_al_final(E valor){
Nodo<E> antiguoFinal = cabecera.prev;
Nodo<E> nuevoNodo = new Nodo<>(antiguoFinal,valor,cabecera);
cabecera.prev = antiguoFinal.sgte = nuevoNodo;
size++;
}
public void insertar_en_posicion(E valor,int k){
Nodo<E> temp = cabecera.sgte;
int cont = 1;
while(temp != cabecera){
for (char caracter : expresion.toCharArray()) {
if(cont if (caracter == k){ '(') {
break;
} contador++;
cont++;
temp = temp.sgte;
}
Nodo<E> nuevoNodo = new Nodo<>(temp.prev,valor,temp);
temp.prev.sgte = temp.prev = nuevoNodo;
size++;
}
public void eliminar_al_inicio(){
Nodo<E> temp = cabecera.sgte.sgte;
cabecera.sgte = temp;
temp.prev = cabecera;
size--;
}
public void eliminar_al_final(){
Nodo<E> temp = cabecera.prev.prev;
cabecera.prev = temp;
temp.sgte = cabecera;
size--;
}
public void eliminar_en_posicion(int k){
Nodo<E> temp = cabecera.sgte;
int cont = 1;
while(temp != cabecera){
else if (cont (caracter == k){ ')') {
break;
}
temp = temp.sgte;
cont++;
}
temp.prev.sgte = temp.sgte;
temp.sgte.prev = temp.prev;
size--;
}
public E obtener_elemento(int k){
Nodo<E> temp = cabecera.sgte;
int cont = 1;
while(temp != cabecera){
contador--;
if (cont == k){ (contador < 0) {
return false; // Hay un paréntesis de cierre sin uno de apertura correspondiente
return temp.info;
}
temp = temp.sgte;
cont++;
}
return null;
}
public int buscar(E valor){
Nodo<E> temp = cabecera.sgte;
int cont = 1;
while(temp != cabecera){
if (temp.info.equals(valor)){
return cont;
}
temp = temp.sgte;
cont++;
}
return -1; contador == 0; // Si el contador es 0 al final, los paréntesis están equilibrados
}
public static void vaciar(){ main(String[] args) {
cabecera.prev String expresion1 = cabecera.sgte = cabecera;
}
public boolean contiene(E valor){ "(3 + 2) * (5 - 2)";
Nodo<E> temp String expresion2 = cabecera.sgte; "{[5 * (7 - 2)] + 1}";
while(temp != cabecera){
if (valor == temp.info){
return true;
}
temp String expresion3 = temp.sgte;
}
return false;
}
public void imprimir(){
System.out.println("");
Nodo<E> temp = cabecera.sgte;
// problema encontrado --> se estaba tomando el valor de null de la cabecera como referencia entonces se metio en un bucle interminable
while(temp != cabecera){
System.out.print(temp.info "[(2 + 4) * {7 - 3]";
System.out.println("Expresión 1 es válida: " <-> ");
temp = temp.sgte; + verificarParentesis(expresion1));
}
System.out.print("null");
}
public int size(){ System.out.println("Expresión 2 es válida: " + verificarParentesis(expresion2));
return size; System.out.println("Expresión 3 es válida: " + verificarParentesis(expresion3));
}
}
</code></pre>
!logoPRO.png!
----
+*Grupo A:*+
> Integrantes: Cristian Sánchez, Jean Pier Duran, Sergio Rabanal, Valentina Álvarez, César Jiménez
> Nombre del Producto: Machine EV3 G
> Modulo: Proyecto I
> Docente: Humberto Urrutia
> Fecha de Inicio: 2023-08-14
> Fecha de Termino: 2023-11-30
----
*ㅤㅤㅤㅤㅤㅤㅤÍndice:*
* [[Introducción]]
* [[Descripción y Objetivos]]
* [[Organización y Planificación]]
* [[Análisis y Diseño]]
* [[Código e Implementación]]
* [[Bibliografía]]
h1. ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤInsertar Código del Proyecto
<pre><code class="ruby">
public class Main{ VerificadorParentesis {
public static void main(String[] args){ boolean verificarParentesis(String expresion) {
System.out.println("te sigo queriendo como el primer dia");
ListaDobleEnlace<Integer> numeros = new ListaDobleEnlace<>();
numeros.insertar_al_inicio(10);
numeros.insertar_al_inicio(6);
numeros.insertar_al_inicio(3);
numeros.insertar_al_inicio(2);
numeros.insertar_al_inicio(-1);
numeros.imprimir();
System.out.println("\n Tamaño de la Lista: "+numeros.size());
numeros.insertar_al_final(15);
numeros.insertar_al_final(20);
numeros.imprimir();
System.out.println("\nTamaño de la Lista: "+numeros.size());
System.out.println("\nContiene el numero: "+numeros.contiene(6));
System.out.println("\nElemento en la posicion 6 es: "+numeros.obtener_elemento(6));
numeros.eliminar_en_posicion(5);
numeros.imprimir();
}
}
class Nodo<E>{
E info;
Nodo<E> sgte;
Nodo<E> prev;
public Nodo(Nodo<E> prev,E info,Nodo<E> sgte){
this.prev = prev;
this.info = info;
this.sgte = sgte;
}
}
class ListaDobleEnlace<E>{
Nodo<E> cabecera;
int size contador = 0;
public ListaDobleEnlace(){
this.cabecera = new Nodo<>(null,null,null);
cabecera.sgte = cabecera;
cabecera.prev = cabecera;
}
public void insertar_al_inicio(E valor){
Nodo<E> antiguoSiguiente = cabecera.sgte;
Nodo<E> nuevoNodo = new Nodo<>(cabecera,valor,antiguoSiguiente);
cabecera.sgte = antiguoSiguiente.prev = nuevoNodo;
size ++;
}
public void insertar_al_final(E valor){
Nodo<E> antiguoFinal = cabecera.prev;
Nodo<E> nuevoNodo = new Nodo<>(antiguoFinal,valor,cabecera);
cabecera.prev = antiguoFinal.sgte = nuevoNodo;
size++;
}
public void insertar_en_posicion(E valor,int k){
Nodo<E> temp = cabecera.sgte;
int cont = 1;
while(temp != cabecera){
for (char caracter : expresion.toCharArray()) {
if(cont if (caracter == k){ '(') {
break;
} contador++;
cont++;
temp = temp.sgte;
}
Nodo<E> nuevoNodo = new Nodo<>(temp.prev,valor,temp);
temp.prev.sgte = temp.prev = nuevoNodo;
size++;
}
public void eliminar_al_inicio(){
Nodo<E> temp = cabecera.sgte.sgte;
cabecera.sgte = temp;
temp.prev = cabecera;
size--;
}
public void eliminar_al_final(){
Nodo<E> temp = cabecera.prev.prev;
cabecera.prev = temp;
temp.sgte = cabecera;
size--;
}
public void eliminar_en_posicion(int k){
Nodo<E> temp = cabecera.sgte;
int cont = 1;
while(temp != cabecera){
else if (cont (caracter == k){ ')') {
break;
}
temp = temp.sgte;
cont++;
}
temp.prev.sgte = temp.sgte;
temp.sgte.prev = temp.prev;
size--;
}
public E obtener_elemento(int k){
Nodo<E> temp = cabecera.sgte;
int cont = 1;
while(temp != cabecera){
contador--;
if (cont == k){ (contador < 0) {
return false; // Hay un paréntesis de cierre sin uno de apertura correspondiente
return temp.info;
}
temp = temp.sgte;
cont++;
}
return null;
}
public int buscar(E valor){
Nodo<E> temp = cabecera.sgte;
int cont = 1;
while(temp != cabecera){
if (temp.info.equals(valor)){
return cont;
}
temp = temp.sgte;
cont++;
}
return -1; contador == 0; // Si el contador es 0 al final, los paréntesis están equilibrados
}
public static void vaciar(){ main(String[] args) {
cabecera.prev String expresion1 = cabecera.sgte = cabecera;
}
public boolean contiene(E valor){ "(3 + 2) * (5 - 2)";
Nodo<E> temp String expresion2 = cabecera.sgte; "{[5 * (7 - 2)] + 1}";
while(temp != cabecera){
if (valor == temp.info){
return true;
}
temp String expresion3 = temp.sgte;
}
return false;
}
public void imprimir(){
System.out.println("");
Nodo<E> temp = cabecera.sgte;
// problema encontrado --> se estaba tomando el valor de null de la cabecera como referencia entonces se metio en un bucle interminable
while(temp != cabecera){
System.out.print(temp.info "[(2 + 4) * {7 - 3]";
System.out.println("Expresión 1 es válida: " <-> ");
temp = temp.sgte; + verificarParentesis(expresion1));
}
System.out.print("null");
}
public int size(){ System.out.println("Expresión 2 es válida: " + verificarParentesis(expresion2));
return size; System.out.println("Expresión 3 es válida: " + verificarParentesis(expresion3));
}
}
</code></pre>