You are on page 1of 14

rboles binarios

Ms abajo se muestra una definicin simple de un nodo de rbol binario. Al


igual que el nodo de listas enlazadas, se define a s misma (de forma
recursiva). Hay dos punteros que se refieren a s mismos left (apuntando a
l aparte izquierda del subrbol) y right (a la parte derecha del subrbol).
struct node
{
int n;
struct node *left;
struct node *right;
};

// algn tipo de datos


// puntero al subrbol izquierdo
// puntero al subrbol derecho

// TREE no es otra cosa que un nodo '' struct ''


typedef struct node *TREE;
Las operaciones en el rbol pueden implementarse usando recursin.
Ntese que, debido al hecho de que hay dos punteros que se referencian a
s mismos (izquierda y derecha), esas operaciones del rbol van a necesitar
dos llamadas recursivas. Para un ejemplo similar, vase la funcin de
Fibonacci y la explicacin siguiente.
void printTree(TREE t) {
if (!isEmpty(t)) {
printTree(t->left);
izquierda
printf("%d ", t->n);
entero seguido de un espacio
printTree(t->right);
}
}

// caso bsico
// ir a la
// imprimir el
// ir a la derecha

Strings
Los strings son secuencias de caracteres inmodificables. A continuacin
presentamos las operaciones ms frecuentes con strings:

Declaracin de un string:String s= "Hola, "; // Declaracin

con asignacin
String r= "esto es un string";
String t;
// Declaracin sin asignacin

Despliegue de un string:System.out.println(s);
System.out.println(t); // Error t no tiene valor

Asignacin de strings:t= "Chao";

Concatenacin de strings:s + r // "Hola, esto es un string"
El resultado de esta expresin es de tipo string. Ejemplo:t= s + "que
tal"; // "Hola, que tal"

Tamao de un string:s.length()
// 6
(s+r).length() // s.length()+r.length()
El resultado de esta expresin es de tipo int.
Extraccin de un caracter:s.charAt(0) // 'H'
s.charAt(4) // ','
El resultado de esta expresin es de tipo char.
Extraccin de subsecuencias:s.substring(2,3) // "la,"
El resultado de esta expresin es de tipo string.
Comparacin de strings:s.equals("Hola, ")
// true
s=="Hola, "
// false, compara punteros
s.compareTo(r)
// <0, ==0 o >0
Ejemplos:if (s.equals("Hola, ")) ...
// true
if (s=="Hola, ") ...
// false, compara
punteros
t= r;
if (s==r) ...
// true
if (s.compareTo(r)) ...
// <0, ==0 o >0
if (s<r) ...
// error

Conversin a string:int n= 5;
System.out.println("n= "+n);
// n= 5
String t= "El numero n es "+n;
Si uno de los operandos de + es de tipo string, el otro se convierte
implcitamente a string.
Operaciones prohibidas:

Modificacin de un caracter:s[0]= 'h';


s.charAt(0)= 'h'; // error

// error

Los strings no se pueden modificar como en C.


Avanzar al siguiente caracter:s= s+1; // error
Java no posee aritmtica de punteros.

Reproductor
Desde Java puedes ejecutar procesos, por lo que deberas de poder abrir
omxplayer
Sera algo como:
String [] comando = {"omxplayer","-o","hdmi", "Alvin_y_las_ardillas.avi"};
try{
Process p = Runtime.getRuntime().exec (comando);
}
catch (Exception e){
System.out.println("la has cagao");
e.printStackTrace();
}

1 //Los mtodos equals, equalsIgnoreCase, compareTo y regionMatches de


String.
2 import javax.swing.JOptionPane;
3
4 public class CompararString {
5
6 public static void main( String args[] )
7 {
8
String s1 = new String( "hola" ); // s1 es una copia de "hola"
9
String s2 = "adis";
10
String s3 = "Feliz Cumpleaos";
11
String s4 = "feliz cumpleaos";
12
13
String salida = "s1 = " + s1 + "\ns2 = " + s2 + "\ns3 = " + s3 +

14
"\ns4 = " + s4 + "\n\n";
15
16
// probar igualdad
17
if ( s1.equals( "hola" ) ) // true
18
salida += "s1 es igual a \"hola\"\n";
19
else
20
salida += "s1 es distinta de \"hola\"\n";
21
22
// probar igualdad con ==
23
if ( s1 == "hola" ) // false; no son el mismo objeto
24
salida += "s1 es igual a \"hola\"\n";
25
else
26
salida += "s1 es distinta de \"hola\"\n";
27
28
// probar igualdad (ignorar maysculas)
29
if ( s3.equalsIgnoreCase( s4 ) ) // true
30
salida += "s3 es igual a s4\n";
31
else
32
salida += "s3 es distinta de s4\n";
33
34
// probar compareTo
35
salida += "\ns1.compareTo( s2 ) es " + s1.compareTo( s2 ) +
36
"\ns2.compareTo( s1 ) es " + s2.compareTo( s1 ) +
37
"\ns1.compareTo( s1 ) es " + s1.compareTo( s1 ) +
38
"\ns3.compareTo( s4 ) es " + s3.compareTo( s4 ) +
39
"\ns4.compareTo( s3 ) es " + s4.compareTo( s3 ) + "\n\n";
40
41
// probar regionMatches (susceptible a maysculas)
42
if ( s3.regionMatches( 0, s4, 0, 5 ) )
43
salida += "Los primeros 5 caracteres de s3 y s4 concuerdan\n";
44
else
45
salida += "Los primeros 5 caracteres de s3 y s4 no concuerdan\n";
46
47
// probar regionMatches (ignorar maysculas)
48
if ( s3.regionMatches( true, 0, s4, 0, 5 ) )
49
salida += "Los primeros 5 caracteres de s3 y s4 concuerdan";
50
else
51
salida += "Los primeros 5 caracteres de s3 y s4 no concuerdan";
52
53
JOptionPane.showMessageDialog( null, salida,
54
"Comparaciones entre cadenas",
JOptionPane.INFORMATION_MESSAGE );
55

56
System.exit( 0 );
57 }
58
59 } // fin de la clase CompararString

Manga y
Hey Class President, Sex Pistols, Tyran Who fall in love, Maiden Rose,
Uragiri wa baku no namae wo shitteiru, Switch, Aoi Bungaku ep. 9-10 (Run,
Melos!)
yami no matsuei/descendants of darkness

Mousou Elektel

Sanjina Oakenshield
17 de octubre de 2012

cual les gusta mas .ami junjou egoist y takanoxonodera


maui love 1000%

Arreglos (for)
listanum[2] = 15; /* Asigna 15 al 3er elemento del

arreglo listanum*/
num = listanum[2]; /* Asigna el contenido del 3er
elemento a la variable num */
tabladenums[2][3] = 15; /* Asigna 15 al elemento de la
3 fila y la 4 columna*/
num = tabladenums[25][16];
int i[10] = {1,2,3,4,5,6,7,8,9,10};
int num[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};
char cadena[5]="hola";
char cadena[5]={'h','o','l','a','\0'};
A continuacin se muestra un ejemplo que asigna al
primer elemento de un
arreglo bidimensional cero, al siguiente 1, y as
sucesivamente.
main()
{
int t,i,num[3][4];
for(t=0; t<3; ++t)
for(i=0; i<4; ++i)
num[t][i]=(t*4)+i*1;
for(t=0; t<3; ++t)
{
for(i=0; i<4; ++i)
printf("num[%d][%d]=%d
printf("\n");
}

", t,i,num[t][i]);

Scanner rango de numeros


import java.util.Scanner;
public class EstructuraRepetitivaDoWhile1 {
public static void main(String[] ar) {

Scanner teclado=new Scanner(System.in);


int valor;
do {
System.out.print("Ingrese un valor entre 0 y
999 (0 finaliza):");
valor=teclado.nextInt();
if (valor>=100) {
System.out.println("Tiene 3 dgitos.");
} else {
if (valor>=10) {
System.out.println("Tiene 2
dgitos.");
} else {
System.out.println("Tiene 1
dgito.");
}
}
} while (valor!=0); //diferente de
}
}

Scanner if, while, float


import java.util.Scanner;
public class EstructuraRepetitivaDoWhile3 {
public static void main(String[] ar) {
Scanner teclado=new Scanner(System.in);
int cant1,cant2,cant3,suma;
float peso;
cant1=0;
cant2=0;
cant3=0;
do {
System.out.print("Ingrese el peso de la
pieza (0 pera finalizar):");

peso=teclado.nextFloat();
if (peso>10.2) {
cant1++;
} else {
if (peso>=9.8) {
cant2++;
} else {
if (peso>0) {
cant3++;
}
}
}
} while(peso!=0);
suma=cant1+cant2+cant3;
System.out.print("Piezas aptas:");
System.out.println(cant2);
System.out.print("Piezas con un peso superior a
10.2:");
System.out.println(cant1);
System.out.print("Piezas con un peso inferior a
9.8:");
System.out.println(cant3);
}
}

Clave de internet Chava casa

2603 1028 109004 0882 2707 7977

M.C.D. (recursividad)

Otro famosa funcin recursiva es el algoritmo de Euclides, usado para


computar el mximo comn divisor de dos enteros.
Definicin de la funcin:
Pseudocdigo (recursivo):
function gcd is:
input: entero x, entero y de forma que x >= y y y >
0
1. if y is 0, return x
2. else, return [ gcd( y, (remainder of x/y) )
]
end gcd

Torres de Hanoi - Computacin de la relacin de recurrencia para n =


4:
hanoi(4)
= 2*hanoi(3) + 1
= 2*(2*hanoi(2) + 1) + 1
= 2*(2*(2*hanoi(1) + 1) + 1) + 1
= 2*(2*(2*1 + 1) + 1) + 1
= 2*(2*(3) + 1) + 1
= 2*(7) + 1
= 15

Ejemplos de implementacin:
Pseudocdigo (recursivo):
function hanoi is:
input: integer n, such that n >= 1
1. if n is 1 then return 1
2. return [2 * [call hanoi(n-1)] +
1]
end hanoi

Aunque no todas las funciones recursivas tienen una solucin explcita, la


secuencia de la Torre de Hanoi puede reducirse a una frmula explcita.11
Una formula explcita de las Torres de

Hanoi:
h1 = 1
= 21 - 1
h2 = 3
= 22 - 1
h3 = 7
= 23 - 1
h4 = 15 = 24 - 1
h5 = 31 = 25 - 1
h6 = 63 = 26 - 1
h7 = 127 = 27 - 1
Por lo general:
hn = 2n - 1, for all n >= 1

Manga y
leloucherika / Recipe no Ouji-sama
MelanieMurderous / Black Butler [Manga / Anime]
AnthyAMV / Mekai Ouji [Anime/Manga]
CiTyOfCoLoUr8899 / Kuro no basuke
XxMaiLeChanXx / Fisheye Placebo
SakureiiX / Mirai Nikki
eShinigami / Ouji no kikan - Koisuru Boukun - Shinkegi no Kyojin - Lucky
Dog
xMurasakiii / Uta no prince sama
XxAsunaChan13xX / Durarara
Hikarukiu / Sekaiichi hatsukoi
Nekota-sensei
Kuroneko Kareshi no Nakasekata - ---- manga

Futari no Himitsu
Itoshii, to Iu Koto
Kusatta Rasen

Shitsuji wa Itsumo Yuuutsu


Mr. Secret Floor
Soshite, Kimi o Suki ni Naru
Mizugi Kareshi
Suit Sugata no Cinderella
Ten Count
Tadekare!
Miwaku Shikake - Amai Wana
Snow Blossom
Mobile Sweet Honey
6LDK - Oogataken ga Nyuukyo
Cinderella Plot
One Room no Koibito
Gosan no Heart

While, do while, compareTo, for


if (cadena1.compareTo(cadena2) == 0)

// cadena1 y cadena2 son iguales

else if (cadena1.compareTo(cadena2) < 0) //cadena1 va antes que


cadena2
else if (cadena1.compareTo(cadena2) > 0) //cadena2 va despus que
cadena1

public class Ejercicio02 {

//Comienzo del flujo principal del programa.


public static void main(String [] argumentos) {
int x = 0;
int y = 10;
salida("Primer iterador");
while(x < y) {
salida("x es "+ x++);
}
salida("Segundo iterador");
for(int i = 0; i < 10 ; ++i) {
salida("i es "+ i);
}
salida("Tercer iterador");
do {
salida("x es " + x--);
} while ( x > 0 );
System.exit(0);
}
public static void salida ( String cadena ) {
System.out.println(cadena);
}
}

Letras
for (x=0; x<cont;
x++)
suma+pila[x];
suma/cont;

{
}
System.out.println (pro);

suma =
pro =

********************************************************************
private boolean isOnlyLetters(String s){
char c='
';
boolean isGood=false, safe=isGood;
failCount=0;
for(int i=0;i<s.length();i++){
=
s.charAt(i);
if(Character.isLetter(c))
d=true;
else{
isGood=false;
failCount+=1;
}
}
Count==0 &&
s.length()>0)
safe=true;
else
safe=false;
return safe;
}

int
c
isGoo
if(fail

/*int a=cadena.length(); 82
if
(a<=10) 83
{ 84
Pattern p = Pattern.compile("[^A-Zaz4_]"); 85
Matcher m = p.matcher(cadena); 86
if
(m.find()) 87
{ 88
System.out.println("El
primer caracter tiene que ser una
letra"); 89
} 90
else 91
{ 92
System.out.println("El nombre que tenga maximo 10 caracteres");*/

kings of leons

0030260538
www.kriptopolis.com
charlotte rousse
187 bases en polvo mofeta
188 o 116 coloretes mofeta
190 o 191 base
168 colorete y contornear

217 ojos difuminar *


239 marcado *
224 difuminar *
252 corrector*
242
212 ceja*
266 liner y ceja*
231 sombras crema
205 pestaas*

: Ranveer Deepika in Ram Leela


ergoproxy0
Lovelycomplex0

caballeros, princesas y otras bestias


Ajimine Sakufu

xcore
J2BX6-HKD3J-PDH38-M3FRG-WPB89

rojos
violeta
rosa
azules
10 whatts