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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Pilas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pilas  (Leído 1,328 veces)
Beginner Web


Desconectado Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
Pilas
« en: 26 Septiembre 2018, 04:20 am »

Hola a todos, aqui de nuevo, segun esta definicion de datos no entiendo como seria la implementacion de esta estructura de datos de tipo pila, todas las operaciones de pila con registros, arreglos y listas ya las se emplear, salvo esta estructura en particular, alguien me ayuda?
Código
  1. const int MAX=10;
  2. typedef int contenedor[MAX];
  3. typedef struct tpila{
  4. contenedor datos1;
  5. contenedor datos2;
  6. };//La primera posicion del segundo arreglo se utiliza como cima



« Última modificación: 26 Septiembre 2018, 19:00 pm por Beginner Web » En línea

7w7
ThunderCls


Desconectado Desconectado

Mensajes: 455


Coder | Reverser | Gamer


Ver Perfil WWW
Re: Pilas
« Respuesta #1 en: 26 Septiembre 2018, 18:05 pm »

Lo que muestras no es una implementación es solo una definición de tipo de datos. Por otra parte no se para que querrías usar dos arrays en tu definición de tipo de datos pila. Por ultimo te recomendaría definir una clase en lugar de una estructura. En la web existen miles de códigos de ejemplo
Suerte


En línea

-[ "…I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/
Beginner Web


Desconectado Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
Re: Pilas
« Respuesta #2 en: 27 Septiembre 2018, 04:31 am »

Todavia no llegue a lo que es POO jiji
Esto era lo que tenia que hacer, gracias por corregir mi error no era una implementacion, era una definicion de una estructura de datos  ;-)
Código
  1. #include <iostream>
  2. #include <stdlib.h>
  3.  
  4. using namespace std;
  5.  
  6. const int MAX=10;
  7. typedef int contenedor[MAX];
  8. typedef struct tpila{
  9. contenedor datos1;
  10. contenedor datos2;
  11. };
  12. void binario(int n);
  13. void init_stack(tpila &pila);
  14. void push_stack(tpila &pila, int nuevo);
  15. bool full_stack(tpila pila);
  16. bool empty_stack(tpila pila);
  17. int pop_stack(tpila &pila);
  18. int top_stack(tpila pila);
  19.  
  20. int main()
  21. {
  22. binario(12);
  23. cout<<"FIN DEL PROGRAMA"<<endl;
  24. system("pause");
  25. }
  26.  
  27. void binario(int n)
  28. {
  29. tpila pila;
  30. init_stack(pila);
  31. while(n!=0){
  32. push_stack(pila,n%2);
  33. n/=2;
  34. }
  35. cout<<"Binario: ";
  36. while(empty_stack(pila)==false){
  37. cout<<pop_stack(pila);
  38. }
  39. cout<<endl;
  40. }
  41.  
  42. void init_stack(tpila &pila)
  43. {
  44. pila.datos2[0]=-1;
  45. }
  46.  
  47. void push_stack(tpila &pila, int nuevo)
  48. {
  49. if(full_stack(pila)==true){
  50. cout<<"PILAS LLENAS"<<endl;
  51. }
  52. else{
  53. if(pila.datos2[0]<MAX-1){
  54. pila.datos2[0]++;
  55. pila.datos1[pila.datos2[0]]=nuevo;
  56. }
  57. else{
  58. pila.datos2[0]++;
  59. if(pila.datos2[0]=MAX){
  60. pila.datos2[0]++;
  61. }
  62. pila.datos2[pila.datos2[0]-MAX]=nuevo;
  63. }
  64. }
  65. }
  66.  
  67. bool full_stack(tpila pila)
  68. {
  69. return pila.datos2[0]==MAX*2-1;
  70. }
  71. bool empty_stack(tpila pila)
  72. {
  73. return pila.datos2[0]==-1;
  74. }
  75.  
  76. int pop_stack(tpila &pila)
  77. {
  78. int aux;
  79. if(empty_stack(pila)==true){
  80. aux=-1;
  81. }
  82. else{
  83. if(pila.datos2[0]>MAX){
  84. aux=pila.datos2[pila.datos2[0]-MAX];
  85. pila.datos2[0]--;
  86. }
  87. else{
  88. if(pila.datos2[0]==MAX){
  89. pila.datos2[0]--;
  90. }
  91. aux=pila.datos1[pila.datos2[0]];
  92. pila.datos2[0]--;
  93. }
  94. }
  95. return aux;
  96. }
  97.  
  98. int top_stack(tpila pila)
  99. {
  100. int aux;
  101. if(empty_stack(pila)==true){
  102. aux=-1;
  103. }
  104. else{
  105. if(pila.datos2[0]>MAX){
  106. aux=pila.datos2[pila.datos2[0]-MAX];
  107. }
  108. else{
  109. if(pila.datos2[0]==MAX){
  110. pila.datos2[0]--;
  111. }
  112. aux=pila.datos1[pila.datos2[0]];
  113. }
  114. }
  115. return aux;
  116. }
  117.  
« Última modificación: 27 Septiembre 2018, 04:57 am por Beginner Web » En línea

7w7
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
pilas
Electrónica
airam_dark_artist 1 2,514 Último mensaje 18 Abril 2005, 10:29 am
por + enrique ZP
Pilas en c++
Programación C/C++
GABETORAP 3 2,645 Último mensaje 2 Diciembre 2011, 01:56 am
por .:UND3R:.
Pilas en c++
Programación C/C++
GABETORAP 1 1,899 Último mensaje 2 Diciembre 2011, 05:41 am
por [L]ord [R]NA
Pilas c++
Programación C/C++
vandamy 7 2,169 Último mensaje 22 Abril 2017, 00:48 am
por vandamy
Pilas
Java
padiuwu 1 1,681 Último mensaje 18 Marzo 2019, 20:28 pm
por spcruzaley
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines