20
EVIDENCIA DE APRENDIZAJE PRIMERA UNIDAD Asignatura: Estructura de Datos Cuarto Semestre Roberto Nieto Morales [email protected] Docente: IVONNE ENRIQUEZ CASTILLO

DEDA_U1_EA_RONM.docx

Embed Size (px)

DESCRIPTION

ESTRUCTURA DE DATOS

Citation preview

Asignatura: Estructura de Datos Cuarto Semestre

Roberto Nieto Morales

Docente: IVONNE ENRIQUEZ CASTILLO

Evidencia de Aprendizaje. Estructura de datos

La evidencia de aprendizaje es la actividad integradora de la unidad, por lo tanto, redactarás un reporte de los pasos que realizaste en la creación de pilas, colas y listas.

Ahora, atiende a las siguientes instrucciones:

1. Crea un archivo de texto que sea subdivida en 3 rubros: pilas, colas y listas.

Estructura de datos pila:

En mi proyecto llevado a cabo en java “netbeans”, realice los siguientes métodos:

Primero lo que hago es definir los atributos de la pila:

Tengo como elementos de la clase pila, una variable del tamaño máximo de la pila, también tengo un elemento privado muy importante que es la variable tope, y otro elemento privado que va a ser un objeto de la clase “object”.

El objeto object es el arreglo, si yo defino un arreglo en el objeto object la ventaja que tengo es que puedo apilar cualquier cosa, puedo apilar un número, una letra, fechas etc.

Es más, si yo utilizo un objeto estudiante voy a poder apilar estudiantes, y después de lo anterior genero un constructor “public pila () {, y el constructor lo hago sin parámetros, entonces, le digo a la pila que tope=0; y le digo que el arreglo es igual a “new”, un nuevo arreglo de objetos de tamaño máximo que le indico a la pila y entonces ya tengo un constructor que me va a crear una pila.

Ahora voy a hacer lo siguiente:

Creo un par de métodos privados de tipo booleano y creo el método vacío, ¿Cómo sé que la pila esta vacía?, cuando regrese tope= 0; ese es mi método que me va a decir si la pila esta vacía.

Si tope =0; entonces me retorna falso, y de igual manera utilizando el mismo método creamos está llena.

¿Cuál es la condición de que la pila este llena?, cuando el tope es igual a máxima, ya que tengo los métodos está llena y esta vacía, entonces es fácil para mí, hacer los métodos de apilar y desapilar.

Entonces hago métodos públicos, en este momento me viene la idea de utilizar un String Apilar que recibe un objeto “object” llamado “dato”, lo primero que tengo que validar para poder apilar es que esté llena y le doy las sentencias.

Si está llena, entonces lo sacamos con un return y con un mensaje “pila llena”, else, si la pila no está llena.

nota: debe quedar claro que una cosa es que la pila este llena a que este vacía, y le digo que el arreglo este en la posición tope, es similar al dato que yo quiero apilar y simplemente le digo que a tope llene y tome ++; más uno, y que me retorne un mensaje “se apilo el dato y simplemente decimos en qué posición quedo.

En la quinta actividad desarrolle de acuerdo a los métodos, un interfaz en el cual se especifica mi entendimiento de la estructura de datos pila, sinceramente me he valido de tutoriales y he entendido como realizar una interfaz gráfica en la vida cotidiana, elabore una pila.El diseño de una interfaz gráfica me ha motivado para seguir aprendiendo y cada día aprendo algo nuevo.El proceso es la continuación de los métodos mencionados, la pila está llena o esta vacía, a través de notas de estudiantes llenar la pila y cuando esté llena, me del mensaje.

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */

/** * * @author Roberto */public class Formulario extends javax.swing.JFrame {

/** * Creates new form Formulario

*/ Pila pil; public Formulario() { initComponents(); }

/** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() {

jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jTTamañoPila = new javax.swing.JTextField(); jButton1 = new javax.swing.JButton(); jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); jLabel6 = new javax.swing.JLabel(); jLabel7 = new javax.swing.JLabel(); jTCedula = new javax.swing.JTextField(); jTCodigoMateria = new javax.swing.JTextField(); jTNota1 = new javax.swing.JTextField(); jTNota2 = new javax.swing.JTextField(); jBApilar = new javax.swing.JButton(); jBDesapilar = new javax.swing.JButton(); jBVacia = new javax.swing.JButton(); jBLlena = new javax.swing.JButton(); jBReporte = new javax.swing.JButton(); jScrollPane1 = new javax.swing.JScrollPane(); jTResultado = new javax.swing.JTextArea();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("MI PRIMER TRABAJO DE ESTRUCTURA DE DATOS"); setBackground(new java.awt.Color(102, 102, 0));

jLabel1.setText("Manejo de Pilas");

jLabel2.setText("Realizado por: Roberto Nieto");

jLabel3.setText("Ingrese tamaño de Pila");

jButton1.setText("CREAR PILA"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } });

jLabel4.setText("Ingrese Cèdula:");

jLabel5.setText("Ingrese el Còdigo de Materia:");

jLabel6.setText("Ingrese Nota 1:");

jLabel7.setText("Ingrese Nota 2:");

jBApilar.setText("Apilar"); jBApilar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jBApilarActionPerformed(evt); } });

jBDesapilar.setText("Desapilar"); jBDesapilar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jBDesapilarActionPerformed(evt); } });

jBVacia.setText("Vacia"); jBVacia.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jBVaciaActionPerformed(evt); } });

jBLlena.setText("Llena"); jBLlena.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jBLlenaActionPerformed(evt); } });

jBReporte.setText("Reporte"); jBReporte.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jBReporteActionPerformed(evt); } });

jTResultado.setColumns(20); jTResultado.setRows(5); jScrollPane1.setViewportView(jTResultado);

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(157, 157, 157) .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addGap(50, 50, 50) .addComponent(jLabel2))) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup() .addGap(19, 19, 19) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 155, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel5) .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel7)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jTTamañoPila, javax.swing.GroupLayout.DEFAULT_SIZE, 124, Short.MAX_VALUE) .addComponent(jTCedula, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jTNota1) .addComponent(jTNota2) .addComponent(jTCodigoMateria)) .addGap(40, 40, 40) .addComponent(jButton1) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jBApilar) .addComponent(jBVacia)) .addGap(31, 31, 31) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jBDesapilar) .addComponent(jBLlena) .addComponent(jBReporte)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 123, Short.MAX_VALUE) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(122, 122, 122))))

); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(55, 55, 55) .addComponent(jLabel1) .addGap(35, 35, 35) .addComponent(jLabel2) .addGap(49, 49, 49) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel3) .addComponent(jTTamañoPila, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton1)) .addGap(36, 36, 36) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel4) .addComponent(jTCedula, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(23, 23, 23) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel5) .addComponent(jTCodigoMateria, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel6) .addComponent(jTNota1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel7) .addComponent(jTNota2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jBApilar) .addComponent(jBDesapilar)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jBVacia) .addComponent(jBLlena)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jBReporte) .addGap(9, 9, 9))

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(28, 28, 28)))) );

pack(); }// </editor-fold>

private void jBApilarActionPerformed(java.awt.event.ActionEvent evt) { String ced=this.jTCedula.getText(); String codM=this.jTCodigoMateria.getText(); int n1=Integer.parseInt(this.jTNota1.getText()); int n2=Integer.parseInt(this.jTNota2.getText()); Notas not=new Notas(ced,codM,n1,n2); pil.Apilar(not); }

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { int t=Integer.parseInt(this.jTTamañoPila.getText()); pil=new Pila(t); }

private void jBDesapilarActionPerformed(java.awt.event.ActionEvent evt) { Object aux=pil.Desapilar(); Notas not =(Notas)aux; this.jTResultado.setText(not.getCedula()+""+not.getCodMateria()+""+not.getNota1()+""+not.getNota2()); }

private void jBVaciaActionPerformed(java.awt.event.ActionEvent evt) { boolean r=pil.Vacia(); if(r==true) this.jTResultado.setText("La pila esta vacia"); else this.jTResultado.setText("La pila no esta vacia"); }

private void jBLlenaActionPerformed(java.awt.event.ActionEvent evt) { boolean r=pil.Llena(); if(r) this.jTResultado.setText("La pila se encuentra llena"); else this.jTResultado.setText("La pila no esta Llena todavia"); }

private void jBReporteActionPerformed(java.awt.event.ActionEvent evt) { String s = pil.Reporte(); this.jTResultado.setText(s);

}

/** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(Formulario.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(Formulario.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(Formulario.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(Formulario.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold>

/* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Formulario().setVisible(true); } }); }

// Variables declaration - do not modify private javax.swing.JButton jBApilar; private javax.swing.JButton jBDesapilar; private javax.swing.JButton jBLlena; private javax.swing.JButton jBReporte;

private javax.swing.JButton jBVacia; private javax.swing.JButton jButton1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTextField jTCedula; private javax.swing.JTextField jTCodigoMateria; private javax.swing.JTextField jTNota1; private javax.swing.JTextField jTNota2; private javax.swing.JTextArea jTResultado; private javax.swing.JTextField jTTamañoPila; // End of variables declaration }

Estructura de datos Cola:

¿Qué necesito para programar la cola?, necesito en donde guardar los elementos, que puede ser una lista o un arreglo.Necesito dos variables de referencia, entonces hago un arreglo y voy a declararlo, voy a ocupar un private de tipo object, ¿Por qué de tipo object?, para que pueda insertar ya sea números, letras, nombres, fechas etc.En este caso al object le puedo llamar cola y posteriormente agrego otra variable de referencia private de tipo entero que llamo frente, y otra que va a ser private de tipo entero llamado final.Entonces empiezo con mi constructor “public” que puede tener el mismo nombre de la clase en este caso puede ser “cola”, voy a recibir un parámetro que va a determinar el arreglo en este ejemplo tomo un tamaño de tipo entero.Bien, iniciare con estas variables mi arreglo y una variable es cola=new object con un rango de tamaño.En seguida otra variable “frente” que va a ser igual a fin, y fin será igual a -1, y con esto ya tengo mi constructor.Enseguida continuo con los métodos que me ayudan para saber cuándo la cola este vacía o esté llena.Para saber cuándo está vacía aplico “public” de tipo boolean que le llamare “isEmpty” no recibe parámetros. ¿Cómo voy a saber cuándo este vacía?, puede estar vacía cuando frente es igual a fin.Ahora ¿Cómo voy a saber cuándo este llena?, igualmente un “public” de tipo boolean y le pregunto que si está llena “isFull”, en este caso para saber si esta lleno el arreglo voy a retornar fin es igual a la longitud de la cola -1. ¿Por qué -1?, porque la longitud del arreglo empieza a contar desde cero, por ejemplo, si declaro un arreglo de longitud 3, el mayor es igual a 2.Con esto ya tengo mis dos métodos y ahora voy a crear un método para insertar, este no retorna nada, en este meto un parámetro object “elemento”.Primero antes que nada debo preguntar si no está llena la cola, y mi método es preguntar si el arreglo esta lleno “isFull”, entonces que me dé un mensaje que la cola está llena de lo contrario “else” que introduzca un dato.Con el mismo procedimiento, hago lo mismo para saber si el arreglo esta vacío, y puedo recibir un mensaje que la cola esta vacía y que inserte datos.

Cuarta Actividad: Colas

Segunda imagen de colas

Estructura de datos Lista:

En mi procedimiento de la clase lista utilizo dos variables, uno es de tipo Nodo que me señala la cabeza o inicio de la lista y otra variable de tipo entero que utilizo para el tamaño de la lista, a través de esta variable ira contando cuantos nodos hay en la lista.

Entonces empiezo con mi constructor public listaVacia y la recibo con un parámetro de dato de tipo entero:

Los procedimientos son estos:

Mirar si la lista esta vacía “que no tiene nodos”, asociadas a ella, si esta vacía vamos a crear un nodo con la indicación siguiente que en este caso es null , evidentemente null es siguiente con el dato que tengo de parámetro.

Si no, si ya existe un elemento creado automáticamente, corre la lista desde inicio hasta el último dato antes de null, y lo que voy hacer agregar un “siguiente nodo” y apuntar hacia el nodo que se está creando y el tamaño va a aumentar porque obviamente ya tengo un nuevo nodo.

Entonces creo el método para el promedio utilizando, la lista desde el inicio “la cabeza” tomando en cuenta en qué posición estamos, llevo a cabo un contador que en la quinta actividad tome como variable alumno.

Quinta actividad de Listas:

2. De las actividades 4 y 5, captura la pantalla de los diversos pasos que realizaste para crear tus estructuras de datos.

3. Redacta cada uno de los pasos que realizaste en la creación de pilas, colas y listas.

4. Ilustra con tus capturas de pantallas cada uno de los pasos que seguiste.

5. Consulta la rúbrica de la evidencia para conocer los criterios de evaluación.

6. Guarda la evidencia con el nombre DEDA_U1_EA_XXYZ.

7. Envía la carpeta del proyecto a tu Facilitador(a) para recibir retroalimentación