elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  dudas basicas: pila
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: dudas basicas: pila  (Leído 2,638 veces)
Fabi0lo

Desconectado Desconectado

Mensajes: 29


Ver Perfil WWW
dudas basicas: pila
« en: 1 Abril 2012, 20:16 pm »

Buenas, estoy estudiando estructuras de datos o datos dinamicos, he buscado varios ejemplos de pila, y asumo q este ejemplo es de lo mas simple, he intentado entenderlo, pero igual me surjen unas dudas.

Código
  1. public class pila {
  2.    int dato;
  3.    pila sig;
  4.    pila(int d){
  5.        dato = d;
  6.        sig = null;
  7.    }
  8.  
  9.    public pila poner(int d){
  10.        pila q = new pila(d);
  11.        q.sig = this;
  12.        return q;
  13.    }
  14.  
  15.    public pila sacar(){
  16.        return sig;
  17.    }
  18. }

  • Si el tipo de la variable tiene el mismo nombre de la clase, eso tiene alguna funcion? sirve para algo? googlé, pero no encuentro info que hable de esto.
  • En la linea que dice "q.sig = this;" que es lo q está haciendo??
    Tengo entendido que this hace referencia a lo q va despues del punto, por ejemplo: this.dato = dato, pero este this está pelado (sin nada), a q está haciendo referencia? que está haciendo?
  • Y también cuando quiero sacar, etá retornando el siguiente, no debería retornar el nodo q me encuentro parado en el momento?


En línea

[Case]


Desconectado Desconectado

Mensajes: 474



Ver Perfil WWW
Re: dudas basicas: pila
« Respuesta #1 en: 1 Abril 2012, 21:12 pm »

El tipo de la variable simplemente te dice de que tipo debe de ser la variable que le pases, en este caso la definición de stack(pila en ingles) es recursiva, esto es:

Un stack es:
- El stack vacio
- Un elemento a segudo de una pila S.

Donde el stack vacio es Null, y un stack es int dato seguido de un stack llamado sig.

Ahora un stack es una estructura LIFO Last In First Out, esto es, todo los elementos que insertes los pones enfrente, por lo tienes que crea una nueva pila donde:

 int d es el primer elemento y la pila actual osea this, debe se ser la pila sigueinte.
q.sig debe de ser de tipo pila, por lo que al pasarle this, le estas pasando el objeto desde donde se llama la función.

Por ultimo la función sacar lo único que hace es regresar como queda la pila quitando el ultimo elemento. A lo mejor lo que tu buscas es esto:
Código:
public int sacar() {
    this = this.sig;
    return dato;
}


En línea

Fabi0lo

Desconectado Desconectado

Mensajes: 29


Ver Perfil WWW
Re: dudas basicas: pila
« Respuesta #2 en: 1 Abril 2012, 21:56 pm »

Ahora q lo pienso, me vinó otra duda, cuando digo pila... hago referencia a Toda la estructura? o hago referencia al nodo? porq si es lo ultimo, creo q le vería más sentido.

El tipo de la variable simplemente te dice de que tipo debe de ser la variable que le pases, en este caso la definición de stack(pila en ingles) es recursiva...
Si, pero el Tipo de variable pila no es algo existente, o sea... si creo un metodo del mismo nombre que la clase, este será un constructor, pero y si creo un tipo de variable con el mismo nombre de la clase, que es? eso es lo q no entiendo.

int d es el primer elemento y la pila actual osea this, debe se ser la pila sigueinte.
q.sig debe de ser de tipo pila, por lo que al pasarle this, le estas pasando el objeto desde donde se llama la función
Tampoco logro entenderlo, porq suena contradictorio (al menos para mi), porq lo q entiendo de esto es... del nodo el cual me encuentro parado, es el mismo que la siguiente, pero no deberían ser 2 cosas distintas?
« Última modificación: 1 Abril 2012, 22:01 pm por Fabi0lo » En línea

[Case]


Desconectado Desconectado

Mensajes: 474



Ver Perfil WWW
Re: dudas basicas: pila
« Respuesta #3 en: 1 Abril 2012, 23:24 pm »

  • No cuando dices Pila o Stack haces referencia a toda la estructura, no a un solo nodo.
  • Claro que si existe, el nombre de la clase es un tipo nuevo que defines al crear esa clase.
    Otra cosa, no confundias metodo con constructor, aunque hagan algún muy parecido, no son lo mismo.
  • No confundas nodo con stack, un stack como dije es la cabeza seguido de otro stack, ahora a la hora de poner al siguiente lo que haces de forma secuencual es, creas una nueva pila con un único elemento, el cual es el nuevo elemento que quieres meter, después pasas el stack actual al stack siguiente del nuevo stack creado. Y regresas el nuevo stack.
.

En línea

Fabi0lo

Desconectado Desconectado

Mensajes: 29


Ver Perfil WWW
Re: dudas basicas: pila
« Respuesta #4 en: 1 Abril 2012, 23:42 pm »

Gracias, la verdad es q es un tema q me cuesta mucho entender, porq tengo problemas con enteder los terminos.

Entonces en Conclusión... q.sig = this;   lo q hace es moverme a la siguiente posicion, la cual se encuentra vacia, por lo que si vuelvo a agregar un elemento, ya esté posicionado. Eso hace?
En línea

[Case]


Desconectado Desconectado

Mensajes: 474



Ver Perfil WWW
Re: dudas basicas: pila
« Respuesta #5 en: 2 Abril 2012, 03:35 am »

Bueno estos ya son conceptos específicos del lenguaje de progrmacion, mas concretamente con los apuntadores de las variables.

Lo que hace es que a la nueva pila que tienes le pasas la vieja pila como la cola de la pila nueva y ya.
Te recomendaria que preguntaras a tu profesor mas sobre sobre esa linea si es que todavía tienes muchos problemas para entenderla.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
DUDAS MUY BASICAS « 1 2 »
Electrónica
novatillo_23 12 7,700 Último mensaje 30 Mayo 2010, 03:11 am
por Dracomega
Problema con crear una Pila Generica (y otras dudas) (ACTUALIZADO)
Programación C/C++
DarkSorcerer 6 5,778 Último mensaje 28 Septiembre 2013, 23:43 pm
por DarkSorcerer
dudas basicas de electronica
Electrónica
inma55 1 2,717 Último mensaje 31 Octubre 2019, 17:16 pm
por engel lex
dudas básicas web
Desarrollo Web
inma55 2 4,949 Último mensaje 20 Marzo 2023, 17:22 pm
por inma55
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines