Vous êtes sur la page 1sur 18

EVIDENCIA DE

APRENDIZAJE PRIMERA
UNIDAD
Roberto Nieto Morales

Docente: IVONNE
ENRIQUEZ CASTILLO
Al13502595@unadmexico.mx

Asignatura: Estructura de Datos


Cuarto Semestre

Evidencia de Aprendizaje. Estructura de datos


La evidencia de aprendizaje es la actividad integradora de la unidad, por lo
tanto, redactars un reporte de los pasos que realizaste en la creacin 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
mtodos:
Primero lo que hago es definir los atributos de la pila:
Tengo como elementos de la clase pila, una variable del tamao mximo de
la pila, tambin 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
nmero, una letra, fechas etc.
Es ms, si yo utilizo un objeto estudiante voy a poder apilar estudiantes, y
despus de lo anterior genero un constructor public pila () {, y el
constructor lo hago sin parmetros, 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
tamao mximo 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 mtodos privados de tipo booleano y creo el mtodo vaco,
Cmo s que la pila esta vaca?, cuando regrese tope= 0; ese es mi
mtodo que me va a decir si la pila esta vaca.
Si tope =0; entonces me retorna falso, y de igual manera utilizando el
mismo mtodo creamos est llena.
Cul es la condicin de que la pila este llena?, cuando el tope es igual a
mxima, ya que tengo los mtodos est llena y esta vaca, entonces es fcil
para m, hacer los mtodos de apilar y desapilar.
Entonces hago mtodos pblicos, 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
vaca, y le digo que el arreglo este en la posicin tope, es similar al dato que
yo quiero apilar y simplemente le digo que a tope llene y tome ++; ms
uno, y que me retorne un mensaje se apilo el dato y simplemente decimos
en qu posicin quedo.

En la quinta actividad desarrolle de acuerdo a los mtodos, 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 grfica en la vida cotidiana, elabore una pila.
El diseo de una interfaz grfica me ha motivado para seguir aprendiendo y
cada da aprendo algo nuevo.
El proceso es la continuacin de los mtodos mencionados, la pila est llena
o esta vaca, a travs 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();
jTTamaoPila = 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 tamao 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 Cdula:");
jLabel5.setText("Ingrese el Cdigo 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.L
EADING)
.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.L
EADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING)
.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.L
EADING, false)
.addComponent(jTTamaoPila,
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.L
EADING)
.addComponent(jBApilar)
.addComponent(jBVacia))
.addGap(31, 31, 31)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING)
.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.B
ASELINE)
.addComponent(jLabel3)
.addComponent(jTTamaoPila,
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.B
ASELINE)
.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.B
ASELINE)
.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.B
ASELINE)
.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.B
ASELINE)
.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.L
EADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(jBApilar)
.addComponent(jBDesapilar))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(jBVacia)
.addComponent(jBLlena))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATE
D)
.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.jTTamaoPila.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.l
ogging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Formulario.class.getName()).log(java.util.l
ogging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Formulario.class.getName()).log(java.util.l
ogging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Formulario.class.getName()).log(java.util.l
ogging.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 jTTamaoPila;
// 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 nmeros, 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
parmetro que va a determinar el arreglo en este ejemplo tomo un tamao
de tipo entero.
Bien, iniciare con estas variables mi arreglo y una variable es cola=new
object con un rango de tamao.
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 mtodos que me ayudan para saber cundo la
cola este vaca o est llena.
Para saber cundo est vaca aplico public de tipo boolean que le llamare
isEmpty no recibe parmetros. Cmo voy a saber cundo este vaca?,
puede estar vaca cuando frente es igual a fin.
Ahora Cmo voy a saber cundo 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 mtodos y ahora voy a crear un mtodo para
insertar, este no retorna nada, en este meto un parmetro object
elemento.
Primero antes que nada debo preguntar si no est llena la cola, y mi mtodo
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
vaco, y puedo recibir un mensaje que la cola esta vaca 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 seala la cabeza o inicio de la lista y otra variable de tipo
entero que utilizo para el tamao de la lista, a travs de esta variable ira
contando cuantos nodos hay en la lista.
Entonces empiezo con mi constructor public listaVacia y la recibo con
un parmetro de dato de tipo entero:
Los procedimientos son estos:

Mirar si la lista esta vaca que no tiene nodos, asociadas a ella, si esta
vaca vamos a crear un nodo con la indicacin siguiente que en este caso es
null , evidentemente null es siguiente con el dato que tengo de parmetro.
Si no, si ya existe un elemento creado automticamente, 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 tamao
va a aumentar porque obviamente ya tengo un nuevo nodo.
Entonces creo el mtodo para el promedio utilizando, la lista desde el inicio
la cabeza tomando en cuenta en qu posicin 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 creacin de pilas,
colas y listas.
4. Ilustra con tus capturas de pantallas cada uno de los pasos que seguiste.
5. Consulta la rbrica de la evidencia para conocer los criterios de
evaluacin.
6. Guarda la evidencia con el nombre DEDA_U1_EA_XXYZ.
7. Enva la carpeta del proyecto a tu Facilitador(a) para recibir
retroalimentacin

Vous aimerez peut-être aussi