Foro de elhacker.net

Programación => Java => Mensaje iniciado por: soser en 8 Septiembre 2010, 03:39 am



Título: Cola circular estatica
Publicado por: soser en 8 Septiembre 2010, 03:39 am
Que tal, bueno mi duda es acerca de como implementar una cola circular con un arreglo, y pues quisiera que me explicaran la logica de como serian las funciones de insertar y borrar porque me confundo mucho y pues he buscado y solo me explican la cola circular pero con nodos, mas no con un arreglo...bueno como dije solo quiero que me expliquen logica de como seria, no el codigo.
Espero que no sea una molestia, y pues gracias


Título: Re: Cola circular estatica
Publicado por: danielo- en 8 Septiembre 2010, 07:15 am
Te dejo el code y tu lo examinas orale?
Es una cola circular hecha con un array, analizala un poco, no tiene mucha ciencia
al ser un array pues se puede utilizar un int como puntero, como es esto? pues simplemente un int me indicara el indice del array donde se encuentra el fin y otro int me indicara  el frente de la cola...  :¬¬


Código
  1. class ColaCircular{
  2. int max,frente,fin;
  3. Object colaCircular[];
  4.  
  5. public void tamano(int n){
  6. max=n;
  7. colaCircular=new Object[max];
  8. frente=-1;
  9. fin=-1;
  10. }
  11.  
  12. public void anadir(Object o){
  13. if((fin==max-1 && frente==0) || (fin+1==frente)) {
  14. System.out.println("overflow");
  15. return;
  16. }
  17. if(fin==max-1 && frente!=0) {
  18. fin=0;
  19. }
  20. else {
  21. fin++;
  22. colaCircular[fin]=o;
  23. }
  24. if(frente==-1){
  25. frente++;
  26. }
  27. }
  28.  
  29. public void eliminar(){
  30. if(frente==-1){
  31. System.out.println("underflow");
  32. return;
  33. }
  34. if(frente==fin) {
  35. frente=-1;
  36. fin=-1;
  37. return;
  38. }
  39. if(frente==max){
  40. frente=0;
  41. }
  42. else {
  43. frente++;
  44. }
  45. }
  46.  
  47. public Object elemento(){
  48. if(frente==max){
  49. System.out.println( "overflow");
  50. return 0;
  51. }
  52. else{
  53. return colaCircular[frente];
  54. }
  55. }
  56.  
  57. public boolean estaVacia(){
  58. return frente==-1;
  59. }
  60.  
  61. public boolean estaLlena(){
  62. return (fin==max-1&&frente==0)||(fin+1==frente);
  63. }
  64.  
  65. public void estatus(){
  66. System.out.println("Frentre: "+frente);
  67. System.out.println("Maximo: "+max);
  68. }
  69.  
  70.  
  71. }
  72.  
  73.  

checalo... Saludos!


Título: Re: Cola circular estatica
Publicado por: soser en 8 Septiembre 2010, 08:55 am
Gracias por la ayuda, me ha servido de mucho me aclaro muchas dudas


Título: Re: Cola circular estatica
Publicado por: mariogamiz91 en 22 Marzo 2012, 23:27 pm
ola que tal disculpa me aparece esto Error: no se ha encontrado el método principal en la clase ColaCircular, defina el método principal del siguiente modo:
   public static void main(String[] args)
ya lon puse y aun asi no me deja correr el programa ayuda pls!!


Título: Re: Cola circular estatica
Publicado por: ponchado en 13 Marzo 2017, 21:42 pm
me lo traducen en c porfavor


Título: Re: Cola circular estatica
Publicado por: Orubatosu en 14 Marzo 2017, 13:56 pm
ola que tal disculpa me aparece esto Error: no se ha encontrado el método principal en la clase ColaCircular, defina el método principal del siguiente modo:
   public static void main(String[] args)
ya lon puse y aun asi no me deja correr el programa ayuda pls!!

Eso es bastante obvio, lo que tienes en el listado es la clase. Si quieres usarla deberás de instanciarla en el programa principal o en cualquier otro lado, pero "de por si" una clase no hace cosas sola mágicamente, hay crear una instancia y trabajar luego sobre ella