ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Ejemplo De Pila En C


Enviado por   •  9 de Febrero de 2014  •  597 Palabras (3 Páginas)  •  259 Visitas

Página 1 de 3

#include <stdio.h>

#include <stdlib.h>

struct Node{

char c;

struct Node* next;

};

void push(struct Node** Stack, char c){

struct Node* NewNode;

if(*Stack == NULL){ //Si la pila esta vacia

*Stack = (struct Node*)malloc( sizeof(struct Node) );

(*Stack)->c = c;

(*Stack)->next = NULL;

}

else{

NewNode = (struct Node*)malloc( sizeof(struct Node) );

NewNode->c = c;

NewNode->next = *Stack;

*Stack = NewNode;

}

}

char pop(struct Node** Stack){

char c;

struct Node* Temporal;

if(*Stack == NULL)

return '\0';

Temporal = *Stack;

*Stack = (*Stack)->next;

c = Temporal->c;

free(Temporal);

return c;

}

void display(struct Node* Stack){

if(Stack == NULL){

printf("Vacio");

return;

}

while(Stack != NULL){

printf("%c\n", Stack->c);

Stack = Stack->next;

}

}

int main(){

struct Node* Stack = NULL;

char c;

char option = '1';

while(option != 'e'){

printf("\n1) Introducir caracter a la pila\n");

printf("2) Quitar elemento de la pila\n");

printf("3) Mostrar elementos de la pila\n");

printf("e) Salir del programa \n");

scanf("%c", &option);

getchar();

switch(option){

case '1':

printf("Que caracter deseas introducir: ");

scanf("%c", &c);

getchar();

push(&Stack, c);

break;

case '2':

c = pop(&Stack);

if(c == '\0')printf("No se puede quitar caracter, pila vacia...\n");

else printf("caracter a sacar de la pila: %c\n", c);

break;

case '3':

printf("La pila actual es: \n");

display(Stack);

fputc('\n', stdout);

break;

case 'e':break;

default: printf("Opcion no valida...\n\n");

}

...

Descargar como (para miembros actualizados) txt (2 Kb)
Leer 2 páginas más »
Disponible sólo en Clubensayos.com