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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


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

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Programacion de Pilas en C
« en: 14 Febrero 2016, 01:28 am »

Tengo este codigo es para manejar pilas en c pero no me quiere correr no le encuentro error espero que me puedan ayudar!!

Código
  1. #include "stdafx.h"
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5.  
  6. typedef struct stackNode STACKNODE;
  7.  
  8. typedef STACKNODE * STACKNODEP;
  9.  
  10. void push(STACKNODEP*, int);
  11.  
  12. int pop(STACKNODEP*);
  13.  
  14. int isVacia(STACKNODEP);
  15.  
  16. void imprimePila(STACKNODEP);
  17.  
  18. void menu(void);
  19.  
  20. void menu(void) {
  21. printf("Opciones:\n");
  22. printf("1. Insertar un nodo a la pila\n");
  23. printf("2. Eliminar un nodo de la pila\n");
  24. printf("3. Finalizar\n");
  25. }
  26.  
  27. void imprimepila(STACKNODEP actualP) {
  28. if (actualP == NULL) {
  29. printf("La pila esta vacía");
  30. }
  31. else {
  32. printf("La pila es:\n");
  33. while (actualP != NULL) {
  34. printf("%d->", actualP->data);
  35. actualP = actualP->nextP;
  36. }
  37. printf("NULL\n\n");
  38. }
  39. }
  40.  
  41. int pop(STACKNODEP *topP) {
  42. STACKNODEP tempP;
  43. int sacarvalor;
  44. tempP = *topP;
  45. sacarvalor = (*topP)->data;
  46. *topP = (*topP)->nextP;
  47. free(tempP);
  48. return sacarvalor;
  49. }
  50.  
  51. void push(STACKNODEP *topP, int info) {
  52. STACKNODEP nuevoP;
  53. nuevoP = (STACKNODEP) malloc(sizeof(STACKNODE));         /*Correcion*/
  54. if (nuevoP != NULL) {
  55. nuevoP->data = info;
  56. nuevoP->nextP = *topP;
  57. *topP = nuevoP;
  58. }
  59. else {
  60. printf("\n No se inserto el elemento %d en la pila", info);
  61. }
  62. }
  63.  
  64. struct stackNode {
  65. int data;
  66. struct stackNode * nextP;
  67. };
  68.  
  69. int isVacia(STACKNODEP topP) {
  70. return (topP == NULL);
  71. }
  72.  
  73.  
  74. int main()
  75. {
  76. STACKNODEP stackP = NULL;
  77. int op, valor;
  78.  
  79. menu();
  80. printf("\n Elige una opcion:");
  81. scanf("%d", &op);
  82.  
  83. while (op != 3) {
  84. switch (op) {
  85. case 1:
  86. printf("\n Teclea un entero");
  87. scanf("%d", &valor);
  88. push(&stackP, valor);
  89. imprimePila(stackP);
  90. break;
  91. case 2:
  92. if (!isVacia(stackP)) {
  93. printf("\n El valor sacado es: %d", pop(&stackP));
  94. }
  95. imprimePila(stackP);
  96. break;
  97. default:
  98. printf("\n Opcion no valida");
  99. break;
  100. }
  101.  
  102. printf("\n Elige una op");
  103. scanf("%d", &op);
  104. }
  105.  
  106. printf("\Fin de programa");
  107.    return 0;
  108. }
  109.  


« Última modificación: 15 Febrero 2016, 22:08 pm por Eternal Idol » En línea

abaadoon

Desconectado Desconectado

Mensajes: 19



Ver Perfil
Re: Programacion de Pilas en C
« Respuesta #1 en: 14 Febrero 2016, 01:37 am »

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4.  
  5. void insertarnodoinicio();
  6. void insertarnodoalfinal();
  7. void insertarentrenodos();
  8. void eliminarnodoinicio();
  9. void eliminarnodofinal();
  10. void eliminarentredosnodos();
  11. void buscarnumero();
  12. void mostrarnodo();
  13.  
  14.  
  15. typedef struct datos{
  16.  struct datos *psig;
  17.  int numero;
  18. }dato;
  19.  
  20.      dato *cab=NULL;
  21.      dato *n=NULL;
  22.      dato *aux=NULL;
  23.      dato *p=NULL;
  24.      dato *q;
  25.      int x,pos,numerodenodos=0,opc;
  26.  
  27.      int main()
  28.      {
  29.            do{
  30.                  printf("\n************************* ELIGE UNA OPCION **********************************\n\n");
  31.                  printf("                   1.-Insertar Un Nodo al Inicio\n");
  32.                  printf("                   2.-Insertar Un Nodo al Final\n");
  33.                  printf("                   3.-Insertar entre dos Nodos\n");
  34.                  printf("                   4.-Mostrar Lista\n");
  35.                  printf("                   5.-Buscar Nodo\n");
  36.                  printf("                   6.-Eliminar Nodo al Inicio\n");
  37.                  printf("                   7.-Eliminar Nodo Final\n");
  38.                  printf("                   8.-Eliminar Entre dos nodos\n");
  39.                  printf("                   9.-Salir\n");      
  40.                  printf("\n\nTeclee su opcion: ");
  41.                  scanf("%d",&opc);
  42.  
  43.                  switch(opc){
  44.                              case 1:
  45.                              insertarnodoinicio();
  46.                              break;
  47.  
  48.                              case 2:
  49.                              insertarnodoalfinal();
  50.                              break;
  51.  
  52.                              case 3:
  53.                              insertarentrenodos();
  54.                              break;
  55.  
  56.                              case 4:    
  57.                              mostrarnodo();
  58.                              break;
  59.  
  60.                              case 5:
  61.                              buscarnumero();
  62.                              break;
  63.  
  64.                              case 6:
  65.                              eliminarnodoinicio();
  66.                              break;
  67.  
  68.                              case 7:
  69.                              eliminarnodofinal();
  70.                              break;
  71.  
  72.                              case 8:
  73.                              eliminarentredosnodos();
  74.                              break;
  75.  
  76.                              case 9:
  77.                              exit(0);break;              
  78.  
  79.                              default:
  80.                              printf("Opcion no valida");break;    
  81.                           }
  82.  
  83.                                    }while(opc!=9);
  84.                                    getch();
  85.  
  86.  
  87.                                    }
  88.  
  89.  
  90.  
  91. void eliminarentredosnodos()
  92. {
  93.     q=cab;
  94.     int h=1;
  95.     if (cab=NULL)
  96.  
  97.                  printf("La lista esta vacia");
  98.  
  99.  
  100.              else
  101.                  {
  102.             printf("Ingrese Nodo a eliminar: ");
  103.             scanf("%d",&x);
  104.             while (q->numero!=x && h==1)
  105.             {
  106.             if (q->psig!=NULL)
  107.             {
  108.                               p=q;
  109.                               q=q->psig;
  110.                               }                                              
  111.             else
  112.  
  113.             h=0;
  114.             }
  115.                  if (p->psig==NULL)
  116.                  printf("Elemento no Encontardo");
  117.                  else
  118.                  {
  119.                      if (cab=q)
  120.                      cab=q->psig;
  121.                      else
  122.                      p->psig=q->psig;
  123.                  }
  124.  
  125.                  delete(q);
  126.       }
  127.  
  128.     getch();
  129.     system("CLS");
  130. }
  131.  
  132.  
  133.  
  134.  
  135. void eliminarnodofinal()
  136. {
  137.     p=cab;
  138.     if (cab==NULL)
  139.     printf("No hay Numeros en la lista");
  140.    if (cab->psig==NULL)
  141.    {
  142.        delete (cab);
  143.        cab=NULL;
  144.        }
  145.  
  146.     else
  147.     {
  148.  
  149.    while(p->psig!=NULL)
  150.    {
  151.    aux=p;
  152.    p=p->psig;
  153. }
  154.    aux->psig=NULL;
  155.    delete p;
  156.    numerodenodos--;
  157. }
  158. getch();
  159. system("cls");    
  160. }
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167. void eliminarnodoinicio()
  168. {
  169.  
  170.     if (cab==NULL)
  171.     printf("No hay numeros que eliminar");
  172.     else
  173.     {
  174.  
  175.         aux=cab;
  176.         cab=cab->psig;
  177.         delete (aux);
  178.         aux=NULL;
  179.         numerodenodos--;
  180. }    
  181. getch();
  182. system("cls");    
  183. }
  184.  
  185.  
  186.  
  187. void buscarnumero()
  188. {
  189.     int eli;
  190.      if (cab==NULL)
  191.      {
  192.     printf("No hay numeros en la lista");
  193.     }
  194.     else
  195.     {
  196.     q=cab;
  197.     printf("Que Numero desea buscar: ");
  198.     scanf("%d",&x);
  199.     pos=1;
  200.     while(q!=NULL && q->numero!=x)
  201.     {
  202.     q=q->psig;
  203.     pos++;
  204.     }
  205.  
  206.     if (q!=NULL)
  207.     printf("%d Esta en la lista y en la posicion %d\n",x,pos);
  208.  
  209.  
  210.     else
  211.     {
  212.          printf("%d No esta en la lista\n",x);
  213.  
  214.          }    
  215. }    
  216.  
  217. getch();
  218. system("cls");    
  219.  
  220. }
  221.  
  222. void insertarnodoinicio(){
  223. n=(dato*)malloc(sizeof (struct dato));
  224. printf("\nElementos a insertar: ");
  225. scanf("%d",&x);
  226. n->numero=x;
  227. n->psig=NULL;
  228. if(cab==NULL)
  229. cab=n;
  230.  
  231. else{
  232. n->psig=cab;
  233. cab=n;
  234. }
  235. numerodenodos++;
  236.  
  237. system("CLS");
  238.  
  239. }
  240.  
  241. void mostrarnodo()
  242. {
  243. if(cab==NULL)
  244. printf("Lista vacia.........\n");
  245.  
  246. else{
  247. p=cab;
  248. printf("\nLista de numeros...\n");
  249. while(p!=NULL){
  250. printf("\n%d\n",p->numero);
  251. p=p->psig;
  252. }
  253. printf("\nEl numero de nodos es: %d ",numerodenodos);
  254.  
  255.  
  256. }
  257. getch();
  258. system("CLS");
  259. }
  260.  
  261. void insertarnodoalfinal()
  262. {
  263. n= (dato*)malloc(sizeof(dato));
  264. printf("Ingresa dato:  ");
  265. scanf("%d",&x);
  266. n->numero=x;
  267. n->psig=NULL;
  268. if(cab==NULL){
  269. cab=n;
  270. numerodenodos++;
  271. }
  272. else{
  273. p=cab;
  274. while(p->psig!=NULL)
  275. {
  276. p=p->psig;
  277. }
  278. p->psig=n;
  279. numerodenodos++;
  280. }
  281. getch();
  282. system("CLS");
  283.  
  284. }
  285.  
  286.   void insertarentrenodos()
  287. {
  288.      if(cab==NULL)
  289.      printf("No hay  elementos");
  290.      else
  291.      {
  292.  
  293.  
  294.             printf("Ingrese la posicion en que desees insertar: ");
  295.             scanf("%d",&pos);
  296.  
  297.             if(pos> numerodenodos || pos==1)
  298.             printf("Solamente es valido entre 2 nodos");
  299.             else
  300.             {
  301.                 n=(dato*)malloc(sizeof(dato));
  302.                 printf("Ingresa dato: ");
  303.                 scanf("%d",&x);
  304.                 n->numero=x;
  305.                 n->psig=NULL;
  306.                              aux=cab;
  307.                 for(int i=1; i<pos-1; i++)
  308.  
  309.             {
  310.                 aux=aux->psig;
  311.                 }
  312.                 n->psig=aux->psig;
  313.                 aux->psig=n;
  314.                  numerodenodos++;
  315.                 }
  316.                 }
  317.                 getch();
  318.                 system("cls");
  319. }
  320.  


« Última modificación: 15 Febrero 2016, 22:08 pm por Eternal Idol » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pilas recargables
Electrónica
sirnejo 2 2,332 Último mensaje 28 Abril 2005, 05:45 am
por DevilInsideTk
pilas
Electrónica
airam_dark_artist 1 2,563 Último mensaje 18 Abril 2005, 10:29 am
por + enrique ZP
Pilas en c++
Programación C/C++
GABETORAP 3 2,710 Último mensaje 2 Diciembre 2011, 01:56 am
por .:UND3R:.
Pilas en c++
Programación C/C++
GABETORAP 1 1,945 Último mensaje 2 Diciembre 2011, 05:41 am
por [L]ord [R]NA
¿ESTOY VIENDO PROGRAMACION 2 Y SE COMO HACER PILAS Y COSAS ASI PERO NO TENGO LOG
Foro Libre
maicol_962016 1 1,689 Último mensaje 13 Febrero 2016, 19:00 pm
por fary
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines