Advertisement
Davidsale96

clase lista int

Dec 5th, 2019
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.74 KB | None | 0 0
  1. package parciales;
  2.  
  3. public class ListaInt {
  4.    
  5.     NodoInt primero;
  6.    
  7.     public void agregarLargoMesetas() {
  8.         NodoInt n = this.primero;
  9.         NodoInt siguiente= null;
  10.         int cont=1;
  11.         NodoInt aux=null;
  12.        
  13.         while(n!=null) {
  14.             NodoInt nuevo = new NodoInt();
  15.             siguiente=n.siguiente;
  16.             if(n.elem!=siguiente.elem) {
  17.                 nuevo.elem=cont;
  18.                 aux=n.siguiente;
  19.                 n=nuevo;
  20.                 nuevo.siguiente=aux;
  21.                 cont=1;
  22.                
  23.                
  24.             }else {
  25.                     n=n.siguiente;
  26.                     siguiente= n.siguiente.siguiente;
  27.                     cont++;
  28.                 }
  29.         }
  30.     }
  31.    
  32.    
  33.     public void imprimir() {
  34.          System.out.print("[");
  35.          NodoInt n = this.primero;
  36.          while (n != null) {
  37.          System.out.print(n.elem + " ");
  38.          n = n.siguiente;
  39.          }
  40.          System.out.println("]");
  41.          }
  42.    
  43.     public void agregarAdelante(int x)
  44.      {
  45.      NodoInt nuevo = new NodoInt();
  46.      nuevo.elem = x;
  47.      nuevo.siguiente = this.primero;
  48.      this.primero = nuevo;
  49.    
  50.      }
  51.    
  52.    
  53.    
  54.     void agregarAtras(int x)
  55.      {
  56.      NodoInt nuevo = new NodoInt();
  57.      nuevo.elem = x;
  58.      if (this.primero==null)
  59.      this.primero=nuevo;
  60.      else {
  61.      NodoInt n = this.primero;
  62.          while(n.siguiente != null)
  63.              n = n.siguiente;
  64.     n.siguiente = nuevo;
  65.      }
  66.      }
  67.     void eliminarIgualesContiguos() {
  68.         if(isEmpty())
  69.             return;
  70.        
  71.         NodoInt anterior = primero;
  72.         NodoInt siguiente = primero.siguiente;
  73.        
  74.         while(siguiente!=null)
  75.         {
  76.             if(anterior.elem == siguiente.elem) {
  77.                 anterior.siguiente = siguiente.siguiente;
  78.             } else {
  79.                 anterior = siguiente;
  80.             }
  81.             siguiente = siguiente.siguiente;
  82.         }
  83.     }
  84.  
  85.     private boolean isEmpty() {
  86.         // TODO Apéndice de método generado automáticamente
  87.         return false;
  88.     }
  89.    
  90.    
  91.    
  92.    
  93.     void descomponerPares2() {
  94.         NodoInt n = this.primero;
  95.         NodoInt siguiente=null;
  96.         while(n !=null) {
  97.             NodoInt nuevo = new NodoInt();
  98.             if (espar(n.elem)) {
  99.                 nuevo.elem=n.elem*2;
  100.                 siguiente=n.siguiente;
  101.                 n.siguiente=nuevo;
  102.                 nuevo.siguiente=siguiente;
  103.                
  104.                 n.elem/=2;
  105.                 n=n.siguiente;
  106.             }
  107.             n=n.siguiente;
  108.         }
  109.     }  
  110.     static boolean espar(int elem) {return elem%2==0;}
  111.    
  112.    
  113.    
  114.    
  115.    
  116.    
  117.    
  118.    
  119.    
  120.    
  121.    
  122.    
  123.    
  124.    
  125.    
  126.    
  127.     void duplicarReflejando() {
  128.         NodoInt n= this.primero;
  129.    
  130.         while(n!=null) {
  131.             NodoInt nuevo = new NodoInt();
  132.             nuevo.elem=n.elem;
  133.             agregarAdelante(nuevo.elem);
  134.             n=n.siguiente;
  135.         }
  136.        
  137.        
  138.     }
  139.    
  140.    
  141.    
  142.    
  143.    
  144.    
  145.    
  146.    
  147.    
  148.    
  149.    
  150.      void quitar(int x) {
  151.          NodoInt n=this.primero, anterior=null;
  152.          
  153.          while(n != null && n.elem != x) {
  154.              anterior = n;
  155.              n = n.siguiente;
  156.          }
  157.        
  158.          if ( n!= null ) { //encontr´o el nodo
  159.              if (anterior == null) //lo encontr´o en el primero
  160.                  this.primero = n.siguiente;
  161.              else
  162.                  anterior.siguiente = n.siguiente;
  163.             }
  164.          }
  165.    
  166.    
  167.    
  168.    
  169.     //[2,5,4,3]   [5,3]   [2,4]
  170.     ListaInt extraerPares() {
  171.         ListaInt nueval=new ListaInt();
  172.         NodoInt n= this.primero;
  173.        
  174.         while(n!=null) {
  175.             if(n.elem%2==0) {
  176.                
  177.                 nueval.agregarAtras(n.elem);
  178.                 quitar(n.elem);
  179.                
  180.             }
  181.             n=n.siguiente; 
  182.         }
  183.        
  184.         return nueval;
  185.     }
  186.    
  187.     static  boolean esprimo(int n) {
  188.         int cont=0;
  189.         for (int i=1;i<n;n++) {
  190.             if(n%i==0)
  191.                 cont++;
  192.            
  193.         }
  194.         if(cont==2)
  195.             return true;
  196.         return false;
  197.     }
  198.    
  199.    
  200.     void separarPrimos() {
  201.         NodoInt n= this.primero;
  202.         NodoInt elemVolatil= null;
  203.         NodoInt siguiente=n.siguiente;
  204.         //int cont=0;
  205.        
  206.         while(n!=null) {
  207.             NodoInt nuevo = new NodoInt();
  208.             if(esprimo(n.elem)&&esprimo(siguiente.elem)) {
  209.                 elemVolatil=n.siguiente;
  210.                 n.siguiente=nuevo;
  211.                 nuevo.elem=n.elem*siguiente.elem;
  212.                 nuevo.siguiente=elemVolatil;       
  213.             }
  214.             n=n.siguiente;
  215.         }
  216.     }
  217.    
  218.     void imprimeprimos() {
  219.         NodoInt n= this.primero;
  220.         NodoInt siguiente=n.siguiente;
  221.         while(n!=null) {
  222.             if(esprimo(n.elem)) {
  223.                 System.out.println("es primo"+n.elem);
  224.             }
  225.             n=n.siguiente;
  226.         }
  227.     }
  228.    
  229.    
  230.    
  231.  
  232.  
  233. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement