Lista Estructuras


/ Published in: Java
Save to your folder(s)

Proyecto Lista


Copy this code and paste it in your HTML
  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5.  
  6. package tabs;
  7.  
  8. /**
  9.  *
  10.  * @author maximilianocaceres
  11.  */
  12. public class Lista {
  13. //el puntero al primer elemento
  14. private Nodo root;
  15. //el total de nodos en la lista
  16. private int numNodos;
  17. //el constructor inicializa las variables
  18. public Lista(){
  19. root = null;
  20. numNodos = 0;
  21. }
  22.  
  23. public void add(String nombre,String apellido,int edad){
  24.  
  25.  
  26. Nodo newNodo;
  27. newNodo=new Nodo();
  28. newNodo.add(nombre, apellido, edad);
  29.  
  30.  
  31. //puntero temporal para recorreme en la lista
  32. Nodo tmp = root;
  33.  
  34. //si la lista esta vacia
  35. if(tmp==null){
  36. //lo agregamos al root
  37. root = newNodo;
  38. }else{
  39. //de lo contrario nos recorremos hasta el ultimo
  40. while(tmp.ptr!=null)
  41. tmp = tmp.ptr;
  42. //en el ultimo hacemos el enlace
  43. tmp.ptr = newNodo;
  44. }
  45. //incrementamos el numero de nodos
  46. numNodos++;
  47. }
  48.  
  49.  
  50.  
  51. public String[][] print(){
  52.  
  53. String datos[][];
  54. datos=new String[this.numNodos][3];
  55.  
  56. Nodo tmp = root;
  57. //sercirandonos que no este vacia
  58. int cont=0;
  59. while (tmp != null){
  60. datos[cont][0]=tmp.nombre;
  61. datos[cont][1]=tmp.apellido;
  62. datos[cont][2]=""+tmp.edad;
  63. tmp=tmp.ptr;
  64. cont++;
  65. }
  66.  
  67. return datos;
  68. }
  69.  
  70. public int mayoresdeedad(){
  71.  
  72. Nodo tmp = root;
  73. int cont=0;
  74. while (tmp != null){
  75. if(tmp.edad>=18)
  76. cont++;
  77. tmp=tmp.ptr;
  78. }
  79. return cont;
  80. }
  81.  
  82.  
  83. public int menoresdeedad(){
  84.  
  85. Nodo tmp = root;
  86. int cont=0;
  87. while (tmp != null){
  88. if(tmp.edad<18)
  89. cont++;
  90. tmp=tmp.ptr;
  91. }
  92. return cont;
  93. }
  94.  
  95.  
  96. public int size(){
  97. return numNodos;
  98. }
  99.  
  100.  
  101. //elimina un nodo deacuerdo al indice dado
  102. public void remover(int index){
  103. //revisamos que el indice este dentro del rango
  104. if(index < numNodos && index >= 0){
  105. //puntero para movernos en la lista
  106. Nodo tmp = root;
  107. //ravisamos que no este vacia
  108. if(tmp==null)
  109. System.out.println("La lista esta vacia");
  110. else if(index == numNodos-1 && index>0){
  111. //si es el ultimo nodo de la lista
  112. while(tmp.ptr.ptr!=null)
  113. //nos movemos hasta uno antes del final
  114. tmp = tmp.ptr;
  115. //eliminamos el enlace
  116. tmp.ptr = null;
  117. //decrementamos el total de nodos
  118. numNodos--;
  119. System.out.println("Borrado con exito!!");
  120. }else{
  121. //si es el primer nodo
  122. if(index == 0){
  123. //movemos el root al siguiente nodo, entonces el primero lo perdemos
  124. root = tmp.ptr;
  125. }else{
  126. //nos movemos hasta un nodo antes del indice
  127. int i=0;
  128. while(i<index-1){
  129. tmp = tmp.ptr;
  130. i++;
  131. }
  132. //enlazamos el nodo anterior al indice, haciendo una especie de salto
  133. //al nodo que querremos eliminar, de tal manera que el que queremos eliminar
  134. //quede afuera de la lista
  135. tmp.ptr = tmp.ptr.ptr;
  136. }
  137. //decrementamos el total de nodos
  138. numNodos--;
  139. System.out.println("Borrado con exito");
  140. }
  141. }else{
  142. System.out.println("Fuera del rango");
  143. }
  144. }
  145.  
  146.  
  147. public String getApellido(int pos){
  148.  
  149. Nodo tmp = root;
  150. String devuelve="";
  151. int cont=0;
  152. while (tmp != null){
  153. if(cont==pos)
  154. devuelve=tmp.apellido;
  155.  
  156. tmp=tmp.ptr;
  157. cont++;
  158.  
  159. }
  160.  
  161. return devuelve;
  162. }
  163.  
  164.  
  165. public String getNombre(int pos){
  166.  
  167. Nodo tmp = root;
  168. String devuelve="";
  169. int cont=0;
  170. while (tmp != null){
  171. if(cont==pos)
  172. devuelve=tmp.nombre;
  173.  
  174. tmp=tmp.ptr;
  175. cont++;
  176.  
  177. }
  178.  
  179. return devuelve;
  180. }
  181.  
  182.  
  183. public int getEdad(int pos){
  184.  
  185. Nodo tmp = root;
  186. int devuelve=0;
  187. int cont=0;
  188. while (tmp != null){
  189. if(cont==pos)
  190. devuelve=tmp.edad;
  191.  
  192. tmp=tmp.ptr;
  193. cont++;
  194.  
  195. }
  196.  
  197. return devuelve;
  198. }
  199.  
  200. public Lista ordenarAZ(Lista desorden){
  201. //int verifica=0,index=0;
  202. char cadena[];
  203. Lista nueva;
  204. nueva = new Lista();
  205. for(char i='a';i<='z';i++){
  206.  
  207. for(int j=0;j<desorden.size();j++){
  208. String probar=desorden.getApellido(j);
  209. probar=probar.toLowerCase();
  210. cadena=probar.toCharArray();
  211. if(i==cadena[0]){
  212. nueva.add(desorden.getNombre(j),desorden.getApellido(j),desorden.getEdad(j));
  213. }
  214. }
  215.  
  216. }
  217.  
  218.  
  219. return nueva;
  220. }
  221.  
  222.  
  223. public Lista ordenarZA(Lista desorden){
  224. //int verifica=0,index=0;
  225. char cadena[];
  226. Lista nueva;
  227. nueva = new Lista();
  228. for(char i='z';i>='a';i--){
  229.  
  230. for(int j=0;j<desorden.size();j++){
  231. String probar=desorden.getApellido(j);
  232. probar=probar.toLowerCase();
  233. cadena=probar.toCharArray();
  234. if(i==cadena[0]){
  235. nueva.add(desorden.getNombre(j),desorden.getApellido(j),desorden.getEdad(j));
  236. }
  237. }
  238.  
  239. }
  240.  
  241.  
  242. return nueva;
  243. }
  244.  
  245. public Lista ordenaredad(Lista desorden){
  246. //int verifica=0,index=0;
  247. Lista nueva;
  248. nueva = new Lista();
  249.  
  250. for(int i=1;i<=150;i++){
  251. for(int j=0;j<desorden.size();j++){
  252. if(i==desorden.getEdad(j)){
  253. nueva.add(desorden.getNombre(j),desorden.getApellido(j),desorden.getEdad(j));
  254. }
  255. }
  256. }
  257.  
  258.  
  259.  
  260.  
  261. return nueva;
  262. }
  263.  
  264.  
  265.  
  266. public float promedio(){
  267.  
  268. float promedio;
  269. promedio=0.2f;
  270. Nodo tmp = root;
  271. while (tmp != null){
  272. promedio+=tmp.edad;
  273. tmp=tmp.ptr;
  274. }
  275. promedio/=this.numNodos;
  276. return promedio;
  277. }
  278.  
  279.  
  280. public int edadmasalta(Lista revisar){
  281.  
  282. int edad=0;
  283. for(int i=0;i<this.numNodos;i++){
  284. edad=revisar.getEdad(i);
  285. for(int j=0;j<this.numNodos;j++){
  286. if(revisar.getEdad(j)>=edad){
  287. edad=revisar.getEdad(j);
  288. }
  289. }
  290. }
  291.  
  292. return edad;
  293. }
  294.  
  295. public int edadmasbaja(Lista revisar){
  296.  
  297. int edad=0;
  298. for(int i=0;i<this.numNodos;i++){
  299. edad=revisar.getEdad(i);
  300. for(int j=0;j<this.numNodos;j++){
  301. if(revisar.getEdad(j)<=edad){
  302. edad=revisar.getEdad(j);
  303. }
  304. }
  305. }
  306.  
  307. return edad;
  308. }
  309.  
  310.  
  311. }

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.