Título: ejercicios de estructura de datos Publicado por: soytupadre en 25 Julio 2012, 06:17 am Hola este es mi primer post, estudio analisis de sistemas.
El ejercicios constiste en generar dos listas al azar, luego de la primera sacar los pares y agregarlos a las segunda lista, posteriormete sacar los impares de la lista 2 y agregarlos a primera lista. espero que les sirva.saludos public class acciones {private static class Nodo {private int info; private Nodo nexo; public Nodo(int dato) {this.info=dato; this.nexo=null;} } private static Nodo ini1=null,ini2=null,ult1=null,ult2=null; private static void agre1(int dato)// agrega nodos {Nodo nuevo =new Nodo(dato); if (ult1==null) ini1=nuevo; else ult1.nexo=nuevo; ult1=nuevo; } private static void agre2(int dato) {Nodo nuevo =new Nodo(dato); if (ult2==null) ini2=nuevo; else ult2.nexo=nuevo; ult2=nuevo; } private static void mostrar1() {Nodo p; System.out.print("lista 1 ="); p=ini1; while(p!=null) {System.out.print("-" + p.info); p=p.nexo; } System.out.println(); } private static void mostrar2() {Nodo p; System.out.print("lista 2 ="); p=ini2; while(p!=null) {System.out.print("-" + p.info); p=p.nexo; } System.out.println(); } private static void eliminar1(int dato){ Nodo p,q,ant; p=ini1; ant=null; while(p!=null){ q=p.nexo; if(p.info==dato){ if(ant==null){ ini1=p.nexo; } else{ ant.nexo=p.nexo; } p=null; }else{ ant=p; p=q; } } } private static void eliminar2(int dato){ Nodo p,q,ant; p=ini2; ant=null; while(p!=null){ q=p.nexo; if(p.info==dato){ if(ant==null){ ini2=p.nexo; } else{ ant.nexo=p.nexo; } p=null; }else{ ant=p; p=q; } } } private static void modifica1()//saca los pares ed lista1 y los mete en lista2 {Nodo p1,q,ant1; p1=ini1; while(p1!=null) {q=p1.nexo; if(p1.info%2==0) {agre2(p1.info); eliminar1(p1.info); } p1=q; } } private static void modifica2()//saca los pares ed lista1 y los mete en lista2 {Nodo p2,q,ant2; p2=ini2; while(p2!=null) {q=p2.nexo; if(p2.info%2==1) {agre1(p2.info); eliminar2(p2.info); } p2=q; } } public static void main(String [] args) {int i, l1=0,l2=0,dato; l1=(int)(Math.random()*10); for(i=0;i<l1;i++) {dato=10+(int)(Math.random()*90); agre1(dato); } l2=(int)(Math.random()*10); for(i=0;i<l2;i++) {dato=10+(int)(Math.random()*90); agre2(dato); } System.out.println("listas generadas al azar"); mostrar1(); mostrar2(); System.out.println("LISTA 1 sin nodos pares y estos agregados a lista2"); modifica1(); mostrar1(); mostrar2(); System.out.println("LISTA 2 sin nodos impares y estos agregados a lista 1"); modifica2(); mostrar1(); mostrar2(); } } |