#include <stdio.h>
#include<stdlib.h>
typedef struct nodo_s
{
char dato;
struct nodo_s *siguiente;
} nodo_t;
typedef nodo_t *ptrNodo;
typedef nodo_t *ptrPila;
void push (ptrPila *pila, char x)
{
ptrNodo nodo;
nodo = (ptrNodo)malloc(sizeof(nodo_t));
if (nodo !=NULL)
{
nodo->dato = x;
nodo->siguiente =*pila;
*pila=nodo;
}
}
char pop(ptrPila *pila)
{
ptrNodo nodo;
char x;
nodo =*pila;
x = (*pila)->dato;
*pila = (*pila)->siguiente;
free(nodo);
return x;
}
int pila_vacia(ptrPila *pila)
{
return(*pila == NULL ? 1:0);
}
void nodos_pila(ptrNodo nodo)
{
if(nodo==NULL)
printf("la pila está vacia\n");
else
{
while (nodo !=NULL)
{
printf("%c\n",nodo->dato);
nodo = nodo->siguiente;
}
printf("\n");
}
}
Qué error te da? El código no tiene nada raro.
me da este error que no se porque
18 undefined reference to `WinMain'
[Error] ld returned 1 exit status
Claro que te da ese error. No hay función main en el programa.
Qué es exactamente lo que quieres hacer? xD
en donde pongo el main
Puedes explicar que programa quieres y para qué?
implementar las funciones push y pop para ser utilizadas con caracteres
Lo estás mirando en clase, o aprendiendo por tu cuenta?
en clase
como pongo un main y un constructor aqui?
//INTENTE HACERLO ASI PERO ME MARCA 0. ALGUIEN QUE SEPA COMO HACERLO?
#include<stdio.h>
#include<stdlib.h>
typedef struct nodo_s
{
char dato;
struct nodo_s *siguiente;
} nodo_t;
typedef nodo_t * ptrNodo;
typedef nodo_t * ptrPila;
void push (ptrPila *pila, char x)
{
ptrNodo nodo;
nodo = (ptrNodo)malloc(sizeof(nodo_t));
if (nodo!= NULL)
{
nodo->dato = x;
nodo->siguiente = *pila;
*pila=nodo;
}
}
char pop (ptrPila *pila)
{
ptrNodo nodo;
char x;
nodo = *pila;
x = (*pila)->dato;
(*pila)->siguiente;
free(nodo);
return x;
}
int pila_vacia(ptrPila *pila)
{
return (*pila == NULL ? 1:0);
}
void nodos_pila(ptrNodo nodo)
{
if(nodo == NULL)
printf("La pila esta vacia \n");
else
{
while (nodo!= NULL)
{
printf("%c\n");
nodo = nodo->siguiente;
}
printf("\n");
}
}
main()
{
ptrPila pila = NULL;
push(&pila,43);
push(&pila,95);
push(&pila,20);
if ( !pila_vacia(&pila)){
printf("\n ESTOS SON LOS NUMEROS DE LA PILA: \n");
nodos_pila(pila);
}
}
ALGUIEN!!! :-( :-( :-(
MOD: No hacer múltiples posts. Usa el botón modificar. . Usa etiquetas GeShi.
El printf no imprime nada ahora, pues no recibe argumentos.
Sugiero poner un valor o variable para que se imprima algo.
cuando programas una pila, habitualmente se deja un nodo que apunte al comienzo de la pila, y otro al último, asi la puedes recorrer