Mostrando las entradas con la etiqueta Introduccion a Programacion. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Introduccion a Programacion. Mostrar todas las entradas

jueves, 15 de diciembre de 2011

Codigo Ensambladror

Este código te muestra las coordenadas de donde se encuentra el cursor al dar click sobre el determinada área de trabajo.

________________________________
org 0100h

jmp inicio
bot dw ?
col dw ?
ren dw ?

numero macro num
mov ax,num ;AX=999d=03E7h
mov bl,100d ;bl=divisor
div bl ;AL=resultado entero=9d
;AH=residuo entero=99d
mov dl,al ;DL=9d
add dl,30h ;DL=39h
push ax ;AX=6309h
mov ah,02h
int 21h ;Se despliega el primer simbolo '9'
pop ax ;se recupera en Ax su valor, osea 6309h
shr ax,8 ;AX=0063h=99d
mov bl,10d
div bl ;AH=9
;AL9
mov dl,al
add dl,30h
push ax
mov ah,02h
int 21h ;Se despliega el segundo simbolo '9'
pop ax
shr ax,8
mov dl,al
add dl,30h
mov ah,02h
int 21h ;Se despliega el tercer simbolo '9'
endm
pos macro c r
mov ah,02h
mov bh,0 ;Numero de pagina de despliegue
mov dh,r ;DH=renglon
mov dl,c ;DL=columna
int 10h
endm

;Inicio del Programa Principal
inicio:
call inigraph ;Iniciliza los graficos
call prende ;Prende el Puntero del Raton
eti4:
mov ax,3d
int 33h ;Detecta coordenadas y boton
mov bot,bx
mov col,cx
mov ren,dx
cmp bot,1d
jne eti4

pos 30 30
numero col
mov ah,02d
mov dl,' '
int 21h
numero ren
jmp eti4

fin:
call apaga
call closegraph
int 20h
;Fin del Programa Principal


;Inicio de los Procedimientos

inigraph proc
mov ah,00h ;Funcion 0 de la INT 10H
mov al,18d ;18=resolucion 640x480 pixeles
int 10h ;Inicializa los graficos
ret
endp
closegraph proc
mov ah,00h
mov al,3d ;3=resolucion 80x25 (modo texto)
int 10h ;Devuelve la pantalla a modo TEXTO
ret
endp
prende proc
mov ax,1d
int 33h ;Prende el puntero del raton
ret
endp
apaga proc
mov ax,2d
int 33h ;Apaga el puntero del raton
ret
endp


= LABETE Prototyp3 =

miércoles, 7 de septiembre de 2011

Concepto y Clasificación de redes.

Redes de Computadoras



= 1 .- Introducción =


Primero tenemos que comprender que es una red de computadoras, entonces una vez definida nuestra pregunta, podemos respondernos que una red de computadoras o también llamada red de ordenadores, es un conjunto de equipos informáticos conectados entre sí por medio de dispositivos físicos los cuales tienen la capacidad de enviar y recibir impulsos eléctricos en forma digital a partir de un temporizador 555, es decir estos ordenadores tienen la cualidad de mandar y recibir impulsos eléctricos, las señales también pueden llegar por medio de ondas electromagnéticas, sin embargo existen otros métodos y medios de transporte para los datos, y de esa manera poder trasladar información de un PC a otro. Este término también generaliza todos aquellos medios técnicos que pueden llegar a permitir compartir la información.
La finalidad principal para la creación de una red de computadoras es compartir los recursos y la información en la distancia, asegurar la confiabilidad y la disponibilidad de la información, aumentar la velocidad de transmisión de los datos y reducir el coste general de estas acciones.












= 2 .- Objetivo de las Redes =

En el mundo actual las redes están conformadas de una estructura y un modo de funcionamiento de tal manera que están definidos en varios estándares, siendo el más importante y extendido de todos ellos el modelo TCP/IP basado en el modelo de referencia OSI. Este último, estructura cada red en 7 capas con funciones concretas pero relacionadas entre sí; en TCP/IP se reducen a 4 capas. Realmente existen multitud de protocolos repartidos por cada capa, los cuales también están regidos por sus respectivos estándares. Sin embargo el objetivo de una red de computadora en general es compartir periféricos, información, con lo cual se ahorra en comprar equipo y aprovecha de una manera mas eficiente el que ya tienen, principalmente se usa para compartir información de un ordenador a otro.















= 3 .- Clasificación de las redes =

3.1 Alcance.
  • 3.1.1.- PAN (red de área personal/personal area network) es una red de ordenadores usada para la comunicación entre los dispositivos de la computadora (teléfonos incluyendo las ayudantes digitales personales) cerca de una persona.

  • 3.1.2.- LAN (red de área local/local area network) es una red que se limita a un área especial relativamente pequeña tal como un cuarto, un solo edificio, una nave, o un avión. Las redes de área local a veces se llaman una sola red de localización.

  • 3.1.3.- CAN (red de área de campus /campus area network) es una red de computadoras que conecta redes de área local a través de un área geográfica limitada, como un campus universitario, o una base militar.

  • 3.1.4.- MAN (red de área metropolitana/metropolitan area network) es una red de alta velocidad (banda ancha) que da cobertura en un área geográfica extensa.

  • 3.1.5.- WAN (redes de área amplia/wide area network, WAN) son redes informáticas que se extienden sobre un área geográfica extensa.

  • 3.1.6.- SAN (red de área de almacenamiento/storage area network), es una red concebida para conectar servidores, matrices (arrays) de discos y librerías de soporte.

  • 3.1.7.- VLAN (Red de área local virtual/Virtual LAN, VLAN) es un grupo de computadoras con un conjunto común de recursos a compartir y de requerimientos, que se comunican como si estuvieran adjuntos a una división lógica de redes de computadoras en la cuál todos los nodos pueden alcanzar a los otros por medio de broadcast (dominio de broadcast) en la capa de enlace de datos, a pesar de su diversa localización física.

  • 3.1.8.- Red irregular es un sistema de cables y buses que se conectan a través de un módem, y que da como resultado la conexión de una o más computadoras. Esta red es parecida a la mixta, solo que no sigue los parámetros presentados en ella. Muchos de estos casos son muy usados en la mayoría de las redes.







3.2 Por tipo de conexión.


3.2.1Medios guiados.


  • El cable coaxial se utiliza para transportar señales eléctricas de alta frecuencia que posee dos conductores concéntricos, uno central, llamado vivo, encargado de llevar la información, y uno exterior, de aspecto tubular, llamado malla o blindaje, que sirve como referencia de tierra y retorno de las corrientes.






  • El cable de par trenzado es una forma de conexión en la que dos conductores eléctricos aislados son entrelazados para tener menores interferencias y aumentar la potencia y disminuir la diafonía de los cables adyacentes.









  • La fibra óptica es un medio de transmisión empleado habitualmente en redes de datos; un hilo muy fino de material transparente, vidrio o materiales plásticos, por el que se envían pulsos de luz que representan los datos a transmitir.









3.2.2 Medios no guiados.

  • Red por radio
  • Red por infrarrojos
  • Red por microondas









3.3 Por topología


  • La red en bus se caracteriza por tener un único canal de comunicaciones (denominado bus, troncal o backbone) al cual se conectan los diferentes dispositivos.
  • En una red en anillo cada estación está conectada a la siguiente y la última está conectada a la primera.
  • En una red en estrella las estaciones están conectadas directamente a un punto central y todas las comunicaciones se han de hacer necesariamente a través de éste.
  • En una red en malla cada nodo está conectado a todos los otros.
  • En una red en árbol los nodos están colocados en forma de árbol. Desde una visión topológica, la conexión en árbol es parecida a una serie de redes en estrella interconectadas salvo en que no tiene un nodo central.
  • En una red mixta se da cualquier combinación de las anteriores

















3.4 Por relación funcional.
  • Cliente-servidor es una arquitectura que consiste básicamente en un cliente que realiza peticiones a otro programa (el servidor) que le da respuesta.
  • Peer-to-peer es aquella red de computadoras en la que todos o algunos aspectos funcionan sin clientes ni servidores fijos, sino una serie de nodos que se comportan como iguales entre sí.


3.5 Por la direccionalidad de los datos.
  • Simplex o Unidireccional: un Equipo Terminal de Datos transmite y otro recibe.
  • Half-Duplex o Bidireccional: sólo un equipo transmite a la vez. También se llama Semi-Duplex.
  • Full-Duplex: ambos pueden transmitir y recibir a la vez una misma información.


3.6 Por grado de autentificación.
  • Red Privada: una red privada se definiría como una red que puede usarla solo algunas personas y que están configuradas con clave de acceso personal.
  • Red de acceso público: una red pública se define como una red que puede usar cualquier persona y no como las redes que están configuradas con clave de acceso personal. Es una red de computadoras interconectados, capaz de compartir información y que permite comunicar a usuarios sin importar su ubicación geográfica.


3.7 Por grado de difusión
  • Una intranet es una red de computadoras que utiliza alguna tecnología de red para usos comerciales, educativos o de otra índole de forma privada, esto es, que no comparte sus recursos o su información con redes ilegítimas
  • Internet es un conjunto descentralizado de redes de comunicación interconectadas que utilizan la familia de protocolos TCP/IP, garantizando que las redes físicas heterogéneas que la componen funcionen como una red lógica única, de alcance mundial.



3.8 Por servicio o función
  • Una red comercial proporciona soporte e información para una empresa u organización con ánimo de lucro.
  • Una red educativa proporciona soporte e información para una organización educativa dentro del ámbito del aprendizaje.
  • Una red para el proceso de datos proporciona una interfaz para intercomunicar equipos que vayan a realizar una función de cómputo conjunta.









= 4 .- Bibliografia =

http://la-red.blogdiario.com/
http://quazarperu.blogspot.com/2011/05/cinco-consejos-para-proteger-tu-wi-fi.html
http://loyafierro.blogspot.com/2011/02/12-clasificacion-de-redes.html
http://michaelpublishingnew.blogspot.com/2011_05_01_archive.html
http://www.gausscomunicaciones.net/index.asp?id=6
http://es.wikipedia.org/wiki/

Autor: Luis Eduardo Fernandez Rocha (Contacto Linkedin)

= R a k n A r r o K =

lunes, 13 de junio de 2011

Estructuras De Base de Datos





Programas Estructura de Base de Datos.
-> Pila
-> Lista
->Cola
->Arbol
->NodoB (complemento Arbol Binario)
-> ArbolBinaro(Complemento Arbol Binario)
->Clase LEER

----------------- Inicio de Pila-------------------------
//Agrega datos, busca, elimina, actualiza, utiliza BufferReader, no es necesario clase leer

import java.io.*;




public class prueva{

public static BufferedReader entrada = new BufferedReader(new InputStreamReader(System.in));
public static final int MAX_LENGTH = 5;
public static String Pila[] = new String[MAX_LENGTH];
public static int cima = -1;



public static void main(String args[])throws IOException{


Menu();

}
public static void Menu()throws IOException{

System.out.println("\n\n\t\t\t°°°°°°°°°°Menu°°°°°°°°°°");
System.out.println("\t\t\t= =");
System.out.println("\t\t\t= 1- Insertar =");
System.out.println("\t\t\t= 2- Eliminar =");
System.out.println("\t\t\t= 3- Buscar =");
System.out.println("\t\t\t= 4- Imprimir =");
System.out.println("\t\t\t= 5- Actualizar =");
System.out.println("\t\t\t= 6- Salir =");
System.out.println("\t\t\t°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°");
System.out.print("\t\t\tOpcion: ");
int op = Integer.parseInt(entrada.readLine());

Opciones(op);


}
public static void Opciones(int op)throws IOException
{

switch(op){

case 1: Insertar();
break;
case 2: Eliminar();
break;
case 3: Buscar();
break;
case 4: Imprimir();
break;
case 5: Actualizar();
break;
case 6: System.exit(1);
break;
default:Menu();
break;

}

}
public static void Insertar()throws IOException{


System.out.print("\nIntrodusca un Numero para la pila: ");
String dato = entrada.readLine();
Crear(dato);

}
public static void Crear(String dato)throws IOException{

if ((Pila.length-1)==cima){
System.out.println("Capacidad de la pila al limite\n\n\n");
Imprimir();
}else
{
++cima;
}

Agregar(dato);

}
public static void Agregar(String dato)throws IOException{
Pila[cima]=dato;
Menu();
}
public static void Imprimir()throws IOException{

for(int i=Pila.length-1;i>=0;i--)
{

System.out.println(Pila[i]);

}
Menu();
}
public static void Eliminar()throws IOException{

if(cima== -1){

System.out.println("\n\n\nNo se puede eliminar, pila vacia !!!" );

}else{

Pila[cima] = null;
--cima;

}

Menu();
}
public static void Buscar()throws IOException{

System.out.println("\n\n\nIngrese la cadena a buscar: ");
String cad = entrada.readLine();

for(int i=0;i

if(cad.equals(Pila[i])){

System.out.println("Elemento encontrado,posicion "+i);
break;

}else{
System.out.println("Elemento no encontrado :(");
}
}
Menu();
}
public static void Actualizar()throws IOException{

System.out.print("Digite el nombre del valor que desea actualizar: ");
String actual = entrada.readLine();
System.out.print("Digite el nombre del nuevo valor: ");
String nuevo = entrada.readLine();

for(int i=0;i

if(actual.equals(Pila[i])){

Pila[i]=nuevo;
break;
}else{
System.out.println("Elemento no encontrado :(");
}
}

Menu();
}

}
//Fin del programa Pila
-----------------Fin de Pila-----------------------------
-----------------Inicio de Listas-----------------------

//Inicio del programa Lista *NECESITA LA CLASE LEER* (se adjunta al final de documento)

public class Lista
{
public static void main (String[] args)
{
double[] vectoraux = new double [100];

double[] vectoraux2;

double[] vector;
int conttemp = 0;



double[] vector2 = new double [100];


int resp = 0;
double nb = 0;
do
{
System.out.println (">>>Menu<<<\n");
System.out.println ("1->Insertar");
System.out.println ("2->Remover");
System.out.println ("3->Buscar");
//System.out.println ("4->Ordenar Lista Descendentemente");
System.out.println ("5->Mostrar");
System.out.println ("6->Salir");
resp = Leer.datoInt ();

if (resp == 1)
{
for (int i = 0 ; i < vectoraux.length ; i++)
{
if (vectoraux [i] == 0)
{
System.out.println ("Ingresa numero : ");
vectoraux [i] = Leer.datoFloat ();
break;
}
}

conttemp = 0;
for (int i = 0 ; i < vectoraux.length ; i++)
{
if (vectoraux [i] != 0)
conttemp++;
}
vector = new double [conttemp];

for (int i = 0 ; i < vector.length ; i++)
{
if (vectoraux [i] != 0)
vector [i] = vectoraux [i];
}
}

if (resp == 2)
{

System.out.println ("Ingresa numero a borrar: ");
nb = Leer.datoFloat ();

for (int i = 0 ; i < vectoraux.length ; i++)
{
vectoraux [i] = (int) vectoraux [i];
}

int w = 0;
for (int i = 0 ; i < vectoraux.length - 1 ; i++)
{
if (vectoraux [i] == nb)
{
vectoraux [i] = vectoraux [i + 1];
nb = vectoraux [i + 1];
if (w == 0)
System.out.println ("Elemento eliminado correctamente");
w = 1;
}
}
if (w == 0)
System.out.println ("No se encontro numero");



conttemp = 0;
for (int i = 0 ; i < vectoraux.length ; i++)
{
if (vectoraux [i] != 0)
conttemp++;
}


vector = new double [conttemp];

for (int i = 0 ; i < vector.length ; i++)
{
if (vectoraux [i] != 0)
vector [i] = vectoraux [i];
}



}

if (resp == 3)
{
vector = new double [conttemp];

for (int i = 0 ; i < vector.length ; i++)
{
vector [i] = (int) vectoraux [i];
}

System.out.println ("Numero a buscar: ");
nb = Leer.datoDouble ();
int x = 0;
for (int i = 0 ; i < vector.length ; i++)
{

if (vector [i] == nb)
{
if (x == 0)
System.out.println ("Numero encontrado en la posicion " + i);

if (x > 0)
System.out.println ("Tambien se encontro el mismo numero en la posicion: " + i);
x = 1;

}

}
if (x == 0)
{
System.out.println ("Numero no encontrado");
}

}

/*if (resp == 4)
{

for (int i = 0 ; i < vectoraux.length ; i++)
{
vectoraux [i] = (int) vectoraux [i];
}


for (int i = 0 ; i < 100 ; i++)
{
for (int j = 0 ; j < vectoraux.length - 1 ; j++)
{
if (vectoraux [j] < vectoraux [j + 1])
{
double temp = vectoraux [j];
vectoraux [j] = vectoraux [j + 1];
vectoraux [j + 1] = temp;
}
}
}
conttemp = 0;
for (int i = 0 ; i < vectoraux.length ; i++)
{
if (vectoraux [i] != 0)
conttemp++;
}
vector = new double [conttemp];

for (int i = 0 ; i < vector.length ; i++)
{
if (vectoraux [i] != 0)
vector [i] = vectoraux [i];
}
}*/




if (resp == 5)
{
if (conttemp == 0)
System.out.print ("Lista Vacia");

vector = new double [conttemp];

for (int i = 0 ; i < vector.length ; i++)
{
if (vectoraux [i] != 0)
vector [i] = vectoraux [i];
}





int[] apa = new int [100];


for (int i = 0 ; i < 100 ; i++)
apa [i] = 9999;




double tempj = .000000000001;
for (int i = 0 ; i < conttemp ; i++)
{
for (int j = 0 ; j < conttemp ; j++)
{
if (j > i)
{
if (vector [i] == vector [j])
{
vector [j] = vector [j] + (tempj * (i + 1));
}
}
}
tempj = tempj * 10;
}

double ap[] = new double [vector.length];
for (int i = 0 ; i < vector.length ; i++)
ap [i] = vector [i];



for (int j = 0 ; j < vector.length ; j++)
{
vector2 [j] = vector [j];
}

for (int i = 0 ; i < 1000 ; i++)
{
for (int j = 0 ; j < vector.length ; j++)
{
if (vector2 [j] > vector2 [j + 1])
{
double temp = vector2 [j + 1];
vector2 [j + 1] = vector2 [j];
vector2 [j] = temp;
}
}
}









for (int i = 0 ; i < vector.length ; i++)
{
if (vector [i] != 0)
{
for (int j = 0 ; j < vector.length ; j++)
{

if (i == j)
{
//System.out.print(" [1]");
if (vector [i] == vector2 [vector.length])
{
if (vector [i] != 0)
{
System.out.print ("\nVector[" + i + "]=" + (int) vector [i]);
System.out.print ("-->[/]");
}
}
else
{
for (int a = 0 ; a < vector.length ; a++)
{
if (vector [a] > ap [i])
{
if (apa [i] == 9999) //0
{
apa [i] = a;
}
else
{
if (vector [a] < vector [apa [i]])
{
apa [i] = a;
}
}

}
}

if (vector [apa [i]] != 0)
{
System.out.print ("\nVector[" + i + "]=" + (int) vector [i]);
System.out.print ("-->[" + apa [i] + "]");
double menor = 10000;
for (int x = 0 ; x < vector.length ; x++)
{
if (menor > vector [x])
menor = vector [x];
}
if (menor == vector [i])
System.out.print ("<-----Menor");

}



}
}

}
}
}
}

if (resp == 6)
{
System.exit (69);
}

if (resp != 1 && resp != 2 && resp != 3 && resp != 4 && resp != 5 && resp != 6)
{
System.out.println (">>OPCION INVALIDA<<");
}


System.out.println ("\n");
}

while (resp != 7);


}
}


//Fin del programa Listas *SE NECESITA LA CLASE LEER* (se adjunta al final de documento)

-----------------Fin de Listas---------------------------
-----------------Inicio de Cola--------------------------
//Inicio del programa Cola *NECESITA LA CLASE LEER* (se adjunta al final de documento)
import java.io.*;


public class Cola
{
public static class ClaseCola
{
int max= 5;
int cola[] = new int [max];
int top, acum = 0, acum2 = 1, var = 0;

public ClaseCola ()//constructor de la clase
{
top = 0;
}

public void EliminarDato ()
{
if (top == 0)//Si top vale 0 la cola esta vacia y por lo tanto se sale con break y no hace nada
{
System.out.println ("Cola vacia");
return;
}
for(int i=0;i<4;i++)//Elimina el primer elemento de la cola y pone u cero al final de la cola
{
cola[i]=cola[i+1];
}
cola[4]=0;
top--;
}

public void InsertarDato () throws Exception
{
int dato;
if (top == max)//Si la pila esta llena no inserta el dato
{
System.out.println ("Cola llena");
return;
}
else if (acum2 <= 0)//Si es el primer dato que se va a insertar
{
System.out.print ("Dato a insertar: ");
dato = getInt ();
cola [var] = dato;
var++;
acum2++;
}
else//Si no es el primer dato pero todavia hay espacio libre en la cola
{
System.out.print ("Dato a insertar: ");
dato = getInt ();
cola [top] = dato;//inserta el dato
top++;
}
System.out.println ("Dato insertado");//Mensaje de confirmacion
return;
}
public void MostrarCola ()
{
if (top == 0)//Si top vale 0 no hay datos en la cola pero de todos modods muestra la cola
System.out.println ("Cola Vacia");
for (int i = 0 ; i < max ; i++)//for que muestra la cola
System.out.println ("Cola[" + i + "]=" + cola [i]);
}
}


static ClaseCola Cola = new ClaseCola ();
public static void main (String args[]) throws Exception
{
int op = 0;
do
{
op = 0;
System.out.println( "1.- Mostrar Cola" );
System.out.println( "2.- Insertar" );
System.out.println( "3.- Remover" );
System.out.println( "4.- Fin" );
op = getInt ();
if(op==1)
Cola.MostrarCola ();
if(op==2)
Cola.InsertarDato();
if(op==3)
Cola.EliminarDato ();
if(op==4)
System.exit(0);
}
while (op != 0);
}
public static int getInt () throws IOException
{
InputStreamReader isr = new InputStreamReader (System.in);
BufferedReader br = new BufferedReader (isr);
String s = br.readLine ();
return Integer.parseInt (s);
}
}

//Fin del programa Cola *SE NECESITA LA CLASE LEER* (se adjunta al final de documento)
-----------------Fin de Cola-----------------------------
-----------------Inicio de Árbol------------------------
//Inicio del programa Arbol *SE NECESITA LA CLASES NODO B y ARBOLBINARIO * (se adjunta al terminar esta clase)

import java.io.*;

public class ArbolBin
{
NodoB Padre;
NodoB Raiz;
public ArbolBin(){
Raiz = null;
}
public void insertaNodo(int Elem){
if(Raiz == null)
Raiz = new NodoB(Elem);
else
Raiz.insertar(Elem);
}
public void preorden (NodoB Nodo){
if(Nodo == null)
return;
else{
System.out.print (Nodo.dato + " ");
preorden (Nodo.Hizq);
preorden (Nodo.Hder);
}
}
public void postOrden (NodoB Nodo){
if(Nodo == null)
return;
else{
postOrden (Nodo.Hizq);
postOrden (Nodo.Hder);
System.out.print (Nodo.dato + " ");
}
}
public void inorden (NodoB Nodo){
if(Nodo == null)
return;
else{
inorden (Nodo.Hizq);
System.out.print(Nodo.dato + " ");
inorden (Nodo.Hder);
}
}
public int altura (NodoB Nodo){
if (Nodo==null)
return -1;
else
return 1+Math.max(altura(Nodo.Hizq),altura(Nodo.Hder));
}
public int tamaño (NodoB Nodo){
if (Nodo==null)
return 0;
else
return 1+tamaño(Nodo.Hizq)+tamaño(Nodo.Hder);
}
public void buscar (int Elem, NodoB A){
if(A == null | A.dato == Elem){
System.out.print(A.dato + " ");
return;
}
else{
if(Elem>A.dato)
buscar(Elem, A.Hder);
else
buscar( Elem, A.Hizq);
}
}
public static void main (String[]args)throws IOException
{
ArbolBin A = new ArbolBin();//Aki se introcucen los datos, puede agregar mas nodos por si kiere xD
BufferedReader entrada=new BufferedReader(new InputStreamReader(System.in));
int nodo=0,dim=0,cont=0;
System.out.print("Dimencion del arbol : ");
dim=Integer.parseInt(entrada.readLine());
do
{
System.out.print("Ingrese un dato : ");
nodo=Integer.parseInt(entrada.readLine());
A.insertaNodo(nodo);
cont++;
}while(dim>cont);
System.out.print("El recorrido en Preorden es: ");
A.preorden (A.Raiz);
System.out.println();
System.out.print("El recorrido en Inorden es: ");
A.inorden (A.Raiz);
System.out.println();
System.out.print("El recorrido en Postorden es: ");
A.postOrden (A.Raiz);
System.out.println();
System.out.println("La altura del arbol es: " + A.altura (A.Raiz));
System.out.println("La cantidad de \"nodos\" que posee el arbol es: " + A.tamaño(A.Raiz));
}
}
//Fin del Arbol *SE NECESITA LA CLASES NODO B y ARBOLBINARIO * (se adjunta al terminar esta clase)
-----------------Fin de Árbol----------------------------
-----------------Inicio de NODO B---------------------

//Inicio de NODO B *COMPLEMENTO DE LA CLASE ÁRBOL * (se adjunta al terminar esta clase)

public class NodoB
{
int dato;
NodoB Hizq, Hder;
//Constructores
NodoB (int Elem)
{
dato = Elem;
NodoB Hizq, Hder = null;
}
NodoB (){
NodoB Hizq, Hder = null;
}
public void insertar(int Elem){
if(Elem < dato){
if (Hizq == null)
Hizq = new NodoB(Elem);
else
Hizq.insertar(Elem);
}
else{
if (Elem > dato){
if (Hder == null)
Hder = new NodoB(Elem);
else
Hder.insertar(Elem);
}
}
}
}

//Fin del NODO B *SE NECESITAN LAS CLASES ARBOLBIN, NODO B y ARBOLBINARIO * para su funcionamiento( en la misma carpeta)
-----------------Fin de NODO B------------------------
-----------------Inicio de ARBOLBINARIO---------

//Inicio de NODO B *COMPLEMENTO DE LA CLASE ÁRBOL *

import java.io.*;
public class ArbolBinario
{
NodoB Padre;
NodoB Raiz;
public ArbolBinario()
{
Raiz = null;
}
public void insertaNodo(int Elem)
{
if(Raiz == null)
Raiz = new NodoB(Elem);
else
Raiz.insertar(Elem);
}
public int altura (NodoB Nodo)
{
if (Nodo==null)
return -1;
else
return 1+Math.max(altura(Nodo.Hizq),altura(Nodo.Hder));
}
public int tamaño (NodoB Nodo)
{
if (Nodo==null)
return 0;
else
return 1+tamaño(Nodo.Hizq)+tamaño(Nodo.Hder);
}
public static void main (String[]args)throws IOException
{
ArbolBin A = new ArbolBin();//Aki se introcucen los datos, puede agregar mas nodos por si kiere xD
BufferedReader entrada=new BufferedReader(new InputStreamReader(System.in));
int nodo=0,dim=0,cont=0;
System.out.print("Dimencion del arbol : ");
dim=Integer.parseInt(entrada.readLine());
do
{
System.out.print("Ingrese un dato : ");
nodo=Integer.parseInt(entrada.readLine());
A.insertaNodo(nodo);
cont++;
}while(dim>cont);
System.out.println("La altura del arbol es: " + A.altura (A.Raiz));
System.out.println("La cantidad de \"nodos\" que posee el arbol es: " + A.tamaño(A.Raiz));
}
}


//NODO B *SE NECESITAN LAS CLASES ARBOLBIN, NODO B y ARBOLBINARIO * para su funcionamiento( en la misma carpeta)

-----------------Fin de ARBOLBINARIO-------------
-----------------Inicio de LEER-------------------------

//Inicio de NODO B *COMPLEMENTO DE LA CLASE ÁRBOL *


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Leer{
public static String dato()
{
String sdato=" ";
try{
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader flujoE = new BufferedReader(isr);
sdato=flujoE.readLine();
//caracterSolo = entrada.readLine().charAt(0);
}
catch (IOException e)
{
System.out.println("Error "+e.getMessage());
}
return sdato;
}
public static char datoChar()
{
char dato=' ';

try{
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader flujoE = new BufferedReader(isr);
dato =flujoE.readLine().charAt(0);
}
catch (IOException e)
{
System.out.println("Error "+e.getMessage());
}
return dato;
}


public static int datoInt()
{
return Integer.parseInt(dato());
}
//De aqui para abajo es la tarea.... Si existe un metodo "parse"
//Para las clases Float,Double, Short y Long.
public static float datoFloat()
{
return Float.parseFloat(dato());
}
public static long datoLong()
{
return Long.parseLong(dato());
}
public static short datoShort()
{
return Short.parseShort(dato());
}
public static double datoDouble()
{
return Double.parseDouble(dato());
}
}
//Fin de clase leer( en la misma carpeta) donde se utilize

-----------------Fin de LEER----------------------------

=Estructura de Base de Datos LINKS de descarga =


=ProgSistem=

-> Download