Revision: 10107
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at December 8, 2008 11:51 by bedomax
Initial Code
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package tabs; /** * * @author maximilianocaceres */ public class Lista { //el puntero al primer elemento private Nodo root; //el total de nodos en la lista private int numNodos; //el constructor inicializa las variables public Lista(){ root = null; numNodos = 0; } public void add(String nombre,String apellido,int edad){ Nodo newNodo; newNodo=new Nodo(); newNodo.add(nombre, apellido, edad); //puntero temporal para recorreme en la lista Nodo tmp = root; //si la lista esta vacia if(tmp==null){ //lo agregamos al root root = newNodo; }else{ //de lo contrario nos recorremos hasta el ultimo while(tmp.ptr!=null) tmp = tmp.ptr; //en el ultimo hacemos el enlace tmp.ptr = newNodo; } //incrementamos el numero de nodos numNodos++; } public String[][] print(){ String datos[][]; datos=new String[this.numNodos][3]; Nodo tmp = root; //sercirandonos que no este vacia int cont=0; while (tmp != null){ datos[cont][0]=tmp.nombre; datos[cont][1]=tmp.apellido; datos[cont][2]=""+tmp.edad; tmp=tmp.ptr; cont++; } return datos; } public int mayoresdeedad(){ Nodo tmp = root; int cont=0; while (tmp != null){ if(tmp.edad>=18) cont++; tmp=tmp.ptr; } return cont; } public int menoresdeedad(){ Nodo tmp = root; int cont=0; while (tmp != null){ if(tmp.edad<18) cont++; tmp=tmp.ptr; } return cont; } public int size(){ return numNodos; } //elimina un nodo deacuerdo al indice dado public void remover(int index){ //revisamos que el indice este dentro del rango if(index < numNodos && index >= 0){ //puntero para movernos en la lista Nodo tmp = root; //ravisamos que no este vacia if(tmp==null) System.out.println("La lista esta vacia"); else if(index == numNodos-1 && index>0){ //si es el ultimo nodo de la lista while(tmp.ptr.ptr!=null) //nos movemos hasta uno antes del final tmp = tmp.ptr; //eliminamos el enlace tmp.ptr = null; //decrementamos el total de nodos numNodos--; System.out.println("Borrado con exito!!"); }else{ //si es el primer nodo if(index == 0){ //movemos el root al siguiente nodo, entonces el primero lo perdemos root = tmp.ptr; }else{ //nos movemos hasta un nodo antes del indice int i=0; while(i<index-1){ tmp = tmp.ptr; i++; } //enlazamos el nodo anterior al indice, haciendo una especie de salto //al nodo que querremos eliminar, de tal manera que el que queremos eliminar //quede afuera de la lista tmp.ptr = tmp.ptr.ptr; } //decrementamos el total de nodos numNodos--; System.out.println("Borrado con exito"); } }else{ System.out.println("Fuera del rango"); } } public String getApellido(int pos){ Nodo tmp = root; String devuelve=""; int cont=0; while (tmp != null){ if(cont==pos) devuelve=tmp.apellido; tmp=tmp.ptr; cont++; } return devuelve; } public String getNombre(int pos){ Nodo tmp = root; String devuelve=""; int cont=0; while (tmp != null){ if(cont==pos) devuelve=tmp.nombre; tmp=tmp.ptr; cont++; } return devuelve; } public int getEdad(int pos){ Nodo tmp = root; int devuelve=0; int cont=0; while (tmp != null){ if(cont==pos) devuelve=tmp.edad; tmp=tmp.ptr; cont++; } return devuelve; } public Lista ordenarAZ(Lista desorden){ //int verifica=0,index=0; char cadena[]; Lista nueva; nueva = new Lista(); for(char i='a';i<='z';i++){ for(int j=0;j<desorden.size();j++){ String probar=desorden.getApellido(j); probar=probar.toLowerCase(); cadena=probar.toCharArray(); if(i==cadena[0]){ nueva.add(desorden.getNombre(j),desorden.getApellido(j),desorden.getEdad(j)); } } } return nueva; } public Lista ordenarZA(Lista desorden){ //int verifica=0,index=0; char cadena[]; Lista nueva; nueva = new Lista(); for(char i='z';i>='a';i--){ for(int j=0;j<desorden.size();j++){ String probar=desorden.getApellido(j); probar=probar.toLowerCase(); cadena=probar.toCharArray(); if(i==cadena[0]){ nueva.add(desorden.getNombre(j),desorden.getApellido(j),desorden.getEdad(j)); } } } return nueva; } public Lista ordenaredad(Lista desorden){ //int verifica=0,index=0; Lista nueva; nueva = new Lista(); for(int i=1;i<=150;i++){ for(int j=0;j<desorden.size();j++){ if(i==desorden.getEdad(j)){ nueva.add(desorden.getNombre(j),desorden.getApellido(j),desorden.getEdad(j)); } } } return nueva; } public float promedio(){ float promedio; promedio=0.2f; Nodo tmp = root; while (tmp != null){ promedio+=tmp.edad; tmp=tmp.ptr; } promedio/=this.numNodos; return promedio; } public int edadmasalta(Lista revisar){ int edad=0; for(int i=0;i<this.numNodos;i++){ edad=revisar.getEdad(i); for(int j=0;j<this.numNodos;j++){ if(revisar.getEdad(j)>=edad){ edad=revisar.getEdad(j); } } } return edad; } public int edadmasbaja(Lista revisar){ int edad=0; for(int i=0;i<this.numNodos;i++){ edad=revisar.getEdad(i); for(int j=0;j<this.numNodos;j++){ if(revisar.getEdad(j)<=edad){ edad=revisar.getEdad(j); } } } return edad; } }
Initial URL
Initial Description
Proyecto Lista
Initial Title
Lista Estructuras
Initial Tags
java
Initial Language
Java