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