Powered By Blogger

sábado, 22 de octubre de 2011

Arboles

Concepto: Si hablamos en términos de Estructura de datos, esto se refiere a que su estructura imita la forma de un árbol, ya que se compone de ramas, raíz. Un nodo es la unidad sobre la que se construye el árbol y puede tener cero o más nodos hijos conectados a él. Se dice que un nodo a es padre de un nodo b si existe un enlace desde a hasta b (en ese caso, también decimos que b es hijo de a). Sólo puede haber un único nodo sin padres, que llamaremos raíz. Un nodo que no tiene hijos se conoce como hoja. Los demás nodos (tienen padre y uno o varios hijos) se les conoce como rama.
  
Tipos de Arboles: 
-Arboles binarios (Solo tiene 2 hijos).


-Arboles Terciarios (Tiene 3 hijos).



Aplicaciones: 
-Formulas matemáticas.
-Circuitos Eléctricos.
-Arboles  genealógicos.
-Redes.

Programas:
Buscar:  
public boolean buscar(Object o)
 {
   if (o.equals(valor))
     return true;
   else if (o.compareTo(valor)<0)
     return buscar(getIzq(),o);
   else return buscar(getDer(),o);
 }



Insertar:
public NodoBinario insertar(Comparable o){ 
   if (o.compareTo(valor)<0) 
     setIzq(insertar(getIzq(),o)); 
   else setDer(insertar(getDer(),o)); 
   return this;
 }


Recorrer:
 public void preOrder(SList aList)
 {
   aList.addElement(value);
   left.preOrder(aList);
   right.preOrder(aList);
 }
 public void inOrder(SList aList)
 {
   left.inOrder(aList);
   aList.addElement(value);
   right.inOrder(aList);
 }
 public void posOrder(SList aList)
 {
   left.posOrder(aList);
   right.posOrder(aList);
   aList.addElement(value);
 }



 public void preOrder(SList aList)
 {
   aList.addElement(value);
   left.preOrder(aList);
   right.preOrder(aList);
 }
 public void inOrder(SList aList)
 {
   left.inOrder(aList);
   aList.addElement(value);
   right.inOrder(aList);
 }
 public void posOrder(SList aList)
 {
   left.posOrder(aList);
   right.posOrder(aList);
   aList.addElement(value);
 }



Video:  



Fuentes:




jueves, 13 de octubre de 2011

Colas


Concepto: Las colas también son llamadas FIFO (First In First Out), que quiere 
decir “el primero que entra es el primero que sale”. 
Tipos de colas:
Colas simples: Se inserta por un lado y se saca por el otro, pero como estamos hablando de cola simple solo se puede insertar por el final y se saca por el principio. 
Ejemplo: 
   


Cola doble (bicola): La cola doble es capaz de que puedes insertar datos de los dos lados, y eliminar de cualquier lado también.
ejemplo:


Colas circulares:
En las colas circulares se considera que después del último elemento se
accede de nuevo al primero. De esta forma se reutilizan las posiciones
extraídas, el final de la cola es a su  vez el principio, creándose un circuito
cerrado.




Lo que se ha hecho es insertar (5), sacar (1), e insertar (8).
Aplicaciones:  Las aplicaciones de colas en general es por ejemplo en un trabajo mandan a imprimir esta imprimirá el primero en llegar es el primero en salir.
Otra aplicación es en los sistemas operativos, estos mandan la señal al cpu dependiendo el orden en el que haya sido la petición.

Fuentes :

http://www.monografias.com/trabajos25/colas/colas.shtml

lunes, 10 de octubre de 2011

Programa de Pila (Incertando datos)

import java.util.*;
public class PilaEstatica {
    public static void main(String[] args) {
      Scanner teclado = new Scanner (System.in);
   System.out.println("Ingrese numero \n");
        int opcion ;
       int  tope, dato = 0;
       int op2= teclado.nextInt();
       int op=teclado.nextInt();
       int pila [] = new int [10];
       int nextInt = teclado.nextInt();
       for (tope=0; tope<9 ; tope++) {
       pila [tope]=teclado.nextInt();
        System.out.println("imprimir pila ...........1");
        System.out.println("");
        op=teclado.nextInt();
        switch (op){
            case 1:
                if (op ==1)
                System.out.println("Vaciar Pila  ");
                 for (tope=9; tope>=0; tope --){
                 System.out.println(""+pila[tope]);
                }
        }
   }
 }    
}      
 

martes, 4 de octubre de 2011

Pilas

Concepto de pilas:  Es un funcionamiento utilizado por la mayoria de los programas , es mas restrictivo que las listas. Su nombre es derivado de apilar los datos, funciona como una caja de refrescos, cuando llega una caja nueva su lugar es sobre todas las demas. Las pilas tienen una aplicación muy grande en los programas, el más común es la RECURSIVIDAD.


Incertar nuevo elemento en pila.



Pila vacia: s.isEmpty(), si ésta regresa el valor de verdadero la pila s está vacía de lo contrario retorna un valor de falso.

Aplicacion:
Operaciones basicas de las pilas:  = insertar un elemento x en la pila s (stack).s.Pop()

arreglo de datos
El numero maximo
El numero minimo
El tipo de datos de la pila
los indices Tope y Base de la Pila
Operaciones Elementales
Iniciar
Insertar
Eliminar
Axiomas
Insertar:
= remover un elemento de la pila s.




fuentes

http://boards4.melodysoft.com/2005AEDI0303/concepto-de-pila-39.html?MAXMSGS=10&ORDERBY=0

https://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r61879.PDF

http://www.mitecnologico.com/Main/OperacionesConPilas

http://computacion.cs.cinvestav.mx/~acaceres/courses/estDatosCPP/node19.html
s.Push(x)

Supongamos que se da una expresión matemática que incluye varios conjuntos de paréntesis y se desea saber si los paréntesis están embebidos correctamente es decir:
1. Si existe igual número de paréntesis a la izquierda que a la derecha.
2. Cada paréntesis de la derecha esté precedido por el correspondiente paréntesis de la izquierda.
Entonces podrá decirse que cada paréntesis a la derecha cierra una posibilidad. En algún punto particular de la expresión la cantidad de paréntesis abiertos y que
no han sido cerrados se le conocerá como profundidad de embebimiento.
Una pila se denomina vacía cuando ésta no contiene elementos. Por lo tanto antes de retirar un elemento es necesario asegurarse que la pila no esté vacía, esto será con la operación