Implementando Uma Pilha em c
Por: eliane1994 • 26/3/2021 • Trabalho acadêmico • 677 Palavras (3 Páginas) • 123 Visualizações
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct node
{
int info;
struct node *ant;
} node;
typedef struct Pilha {
node * topo;
} Pilha;
Pilha * P;
void cria (Pilha * P) {
P->topo = NULL;
} void push (Pilha * P, int x){
node * p;
node * aux;
node * proximo;
proximo = NULL;
aux = NULL;
p = (node *) malloc (sizeof (node));
if (p == NULL){
printf ("Erro de alocacao!");
exit (1);
}else{
p->info = x;
if (P->topo == NULL){
p->ant = NULL;
P->topo = p;
}else{
aux = P->topo; //vai procurar o lugar correto pra inserir o elemento
while(aux != NULL && aux->info > x ){
proximo = aux;
aux = aux->ant;
} // se tiver que inserir no começo
if (aux == P->topo) {
p->ant = P->topo;
P->topo = p;
} // se for no final
else if (aux == NULL) {
proximo->ant = p;
p->ant = NULL;
} // se for no meio
else {
p->ant = aux;
proximo->ant = p;
}
}
proximo = NULL;
aux = NULL;
}
}
void converte (char string[], Pilha * P) {
...