Título: 2 ejercicios, una de lista y uno de cola Publicado por: pedro sebastian en 1 Agosto 2012, 19:26 pm Los ejercicicios que presento a continuacion son 2, explicare y mostrare codigo del primero despues presento el otro
1.- Se generan dos listas al azar Lista1 y Lista 2, donde se intercalan nodos de la lista2 con nodos de la lista1, luego se mueven a la derecha los nodos mas grende que su siguiente y finalmente se agrega un nodos de valor 100 al final de la lista public class Ejercicio { private static class Nodo { private int info; private Nodo nexo; public Nodo(int dato) { this.info = dato; this.nexo = null; } } private static Nodo inicio1=null, inicio2=null, ultimo1=null, ultimo2=null; private static void agrega1(int dato) { Nodo nuevo = new Nodo(dato); if(ultimo1==null) inicio1 = nuevo; else ultimo1.nexo = nuevo; ultimo1 = nuevo; } private static void agrega2(int dato) { Nodo nuevo = new Nodo(dato); if(ultimo2==null) inicio2 = nuevo; else ultimo2.nexo = nuevo; ultimo2 = nuevo; } private static void muestra1() { Nodo p; System.out.print("Lista1"); p = inicio1; while(p!=null) { System.out.print(" - " + p.info); p = p.nexo; } System.out.println(); } //metodo para mostrar el contenido de los nodos de la lista2 private static void muestra2() { Nodo p; System.out.print("Lista2"); p = inicio2; while(p!=null) { System.out.print(" - " + p.info); p = p.nexo; } System.out.println(); } private static void intercala() { Nodo p, q; p=inicio1; while(p!=null && inicio2!=null){ q=p.nexo; p.nexo=inicio2; inicio2=inicio2.nexo; p.nexo.nexo=q; p=q; }} private static void mayor() { Nodo p=inicio1; Nodo s=p; while(p!=null && p.nexo==null){ if(p.info>s.info){ s=p.nexo; p.nexo=s; s=p.nexo; p.nexo=s; p=s; System.out.print(" - "+p.info);} } } private static void inserta() { } public static void main(String [] args) { int i, n1=0, n2=0, dato; n1 = (int)(Math.random()*10); for(i=0;i<n1;i++) { dato = 10 + (int)(Math.random()*90); agrega1(dato); } n2 = (int)(Math.random()*10); / for(i=0;i<n2;i++) { dato = 10 + (int)(Math.random()*90); agrega2(dato); } System.out.println("Listas generadas al azar"); muestra1(); muestra2(); System.out.println("\nSe intercalan nodos de la lista2 entre los nodos de la lista1"); intercala(); muestra1(); muestra2(); System.out.println("\nse mueven hacia la derecha los nodos mas grandes que su siguiente"); mayor(); muestra1(); System.out.println("\nSe inserta un nodo de igual valor despues de cada nodo de valor par"); inserta(); muestra2(); System.out.println("\nFinalmente agrega un nodo de valor 100 al final de la lista1"); agrega1(100); muestra1(); } } 2.- Este consiste en generar una cola al azar para luego hacer una sua recursivamente con cada uno de sus nodos import java.text.*; public class nuevocola { public void hacerlo() { int N = 10; int M[] = new int[N]; int S, E; S = (int)(Math.random()*N/2) - 1; if(S==-1) E=-1; else E=S + (int)(Math.random()*(N-S-1)); System.out.print("indice "); for(int i=0; i<N; i++) System.out.print(i + " "); System.out.println(); System.out.print("Cola"); for(int i=0; i<N; i++) { M = 10 + (int)(Math.random()*90); System.out.print(" " + M); } System.out.println(" S = " + S + ", E = "+ E); System.out.print(" "); for(int i=0; i<N; i++) { if(i<S || i>E) System.out.print(" "); else System.out.print(" **"); } System.out.println (" ** = estan en cola"); System.out.println("Suma recursiva = " + SR(M, S, E)); } private int SR(int M[], int S, int E) { if(S==-1 || S>E) return 0; else return M }} import java.util.Scanner; public class usa { public static void main(String args[]) { nuevocola accion = new nuevocola(); Scanner entrada = new Scanner(System.in); accion.hacerlo(); } } espero que les sirva. saludos Título: Re: 2 ejercicios, una de lista y uno de cola Publicado por: pedro sebastian en 1 Agosto 2012, 19:30 pm M + SR(M, S+1, E);
}} import java.util.Scanner; public class usa { public static void main(String args[]) { nuevocola accion = new nuevocola(); Scanner entrada = new Scanner(System.in); accion.hacerlo(); } } les adjunto lo que sale tajado, nose xq ***** salio asi |