Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package parciales;
- public class ListaInt {
- NodoInt primero;
- public void agregarLargoMesetas() {
- NodoInt n = this.primero;
- NodoInt siguiente= null;
- int cont=1;
- NodoInt aux=null;
- while(n!=null) {
- NodoInt nuevo = new NodoInt();
- siguiente=n.siguiente;
- if(n.elem!=siguiente.elem) {
- nuevo.elem=cont;
- aux=n.siguiente;
- n=nuevo;
- nuevo.siguiente=aux;
- cont=1;
- }else {
- n=n.siguiente;
- siguiente= n.siguiente.siguiente;
- cont++;
- }
- }
- }
- public void imprimir() {
- System.out.print("[");
- NodoInt n = this.primero;
- while (n != null) {
- System.out.print(n.elem + " ");
- n = n.siguiente;
- }
- System.out.println("]");
- }
- public void agregarAdelante(int x)
- {
- NodoInt nuevo = new NodoInt();
- nuevo.elem = x;
- nuevo.siguiente = this.primero;
- this.primero = nuevo;
- }
- void agregarAtras(int x)
- {
- NodoInt nuevo = new NodoInt();
- nuevo.elem = x;
- if (this.primero==null)
- this.primero=nuevo;
- else {
- NodoInt n = this.primero;
- while(n.siguiente != null)
- n = n.siguiente;
- n.siguiente = nuevo;
- }
- }
- void eliminarIgualesContiguos() {
- if(isEmpty())
- return;
- NodoInt anterior = primero;
- NodoInt siguiente = primero.siguiente;
- while(siguiente!=null)
- {
- if(anterior.elem == siguiente.elem) {
- anterior.siguiente = siguiente.siguiente;
- } else {
- anterior = siguiente;
- }
- siguiente = siguiente.siguiente;
- }
- }
- private boolean isEmpty() {
- // TODO Apéndice de método generado automáticamente
- return false;
- }
- void descomponerPares2() {
- NodoInt n = this.primero;
- NodoInt siguiente=null;
- while(n !=null) {
- NodoInt nuevo = new NodoInt();
- if (espar(n.elem)) {
- nuevo.elem=n.elem*2;
- siguiente=n.siguiente;
- n.siguiente=nuevo;
- nuevo.siguiente=siguiente;
- n.elem/=2;
- n=n.siguiente;
- }
- n=n.siguiente;
- }
- }
- static boolean espar(int elem) {return elem%2==0;}
- void duplicarReflejando() {
- NodoInt n= this.primero;
- while(n!=null) {
- NodoInt nuevo = new NodoInt();
- nuevo.elem=n.elem;
- agregarAdelante(nuevo.elem);
- n=n.siguiente;
- }
- }
- void quitar(int x) {
- NodoInt n=this.primero, anterior=null;
- while(n != null && n.elem != x) {
- anterior = n;
- n = n.siguiente;
- }
- if ( n!= null ) { //encontr´o el nodo
- if (anterior == null) //lo encontr´o en el primero
- this.primero = n.siguiente;
- else
- anterior.siguiente = n.siguiente;
- }
- }
- //[2,5,4,3] [5,3] [2,4]
- ListaInt extraerPares() {
- ListaInt nueval=new ListaInt();
- NodoInt n= this.primero;
- while(n!=null) {
- if(n.elem%2==0) {
- nueval.agregarAtras(n.elem);
- quitar(n.elem);
- }
- n=n.siguiente;
- }
- return nueval;
- }
- static boolean esprimo(int n) {
- int cont=0;
- for (int i=1;i<n;n++) {
- if(n%i==0)
- cont++;
- }
- if(cont==2)
- return true;
- return false;
- }
- void separarPrimos() {
- NodoInt n= this.primero;
- NodoInt elemVolatil= null;
- NodoInt siguiente=n.siguiente;
- //int cont=0;
- while(n!=null) {
- NodoInt nuevo = new NodoInt();
- if(esprimo(n.elem)&&esprimo(siguiente.elem)) {
- elemVolatil=n.siguiente;
- n.siguiente=nuevo;
- nuevo.elem=n.elem*siguiente.elem;
- nuevo.siguiente=elemVolatil;
- }
- n=n.siguiente;
- }
- }
- void imprimeprimos() {
- NodoInt n= this.primero;
- NodoInt siguiente=n.siguiente;
- while(n!=null) {
- if(esprimo(n.elem)) {
- System.out.println("es primo"+n.elem);
- }
- n=n.siguiente;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement