-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
2 changed files
with
216 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
// importando pacotes | ||
|
||
#include <stdio.h> | ||
#include <stdlib.h> | ||
#include <stdbool.h> | ||
|
||
// definindo tamanho padrao do vetor | ||
|
||
#define MAX 50 | ||
|
||
// criando estruturas | ||
|
||
typedef struct | ||
{ | ||
int chave; | ||
|
||
} REGISTRO; | ||
|
||
typedef struct | ||
{ | ||
REGISTRO V[MAX]; | ||
int topo; | ||
|
||
} PILHA_ESTAT; | ||
|
||
// declarando funcoes | ||
|
||
void inicializacao(PILHA_ESTAT *p); | ||
void exibicao(PILHA_ESTAT *p); // imprimindo do ultimo ao primeiro inserido | ||
|
||
int tamanho(PILHA_ESTAT *p); | ||
int pop(PILHA_ESTAT *p); // saida de dados | ||
|
||
bool estaCheia(PILHA_ESTAT *p); | ||
bool push(PILHA_ESTAT *p, int ch); // entrada de dados | ||
|
||
// implementando funcoes | ||
|
||
void inicializacao(PILHA_ESTAT *p) | ||
{ | ||
p->topo = -1; | ||
|
||
} | ||
|
||
void exibicao(PILHA_ESTAT *p) | ||
{ | ||
int i; | ||
|
||
for(i = p->topo; i > -1; i--) printf("%d ", p->V[i].chave); | ||
|
||
} | ||
|
||
bool push(PILHA_ESTAT *p, int ch) | ||
{ | ||
if(estaCheia(p) == true) // pilha cheia | ||
{ | ||
return (false); | ||
|
||
} else { // pilha com espaco | ||
|
||
p->V[p->topo + 1].chave = ch; | ||
p->topo++; | ||
|
||
return (true); | ||
|
||
} | ||
|
||
} | ||
|
||
int tamanho(PILHA_ESTAT *p) | ||
{ | ||
int tam, i; | ||
tam = 0; | ||
|
||
for(i = 0; i <= p->topo; i++) tam = i + 1; | ||
|
||
return (tam); | ||
|
||
} | ||
|
||
int pop(PILHA_ESTAT *p) | ||
{ | ||
if(p->topo == -1) // pilha vazia | ||
{ | ||
return (-1); | ||
|
||
} else { // pilha com elem | ||
|
||
int resp = p->V[p->topo].chave; | ||
p->topo--; | ||
|
||
return (resp); | ||
|
||
} | ||
|
||
} | ||
|
||
bool estaCheia(PILHA_ESTAT *p) | ||
{ | ||
if(p->topo >= MAX - 1) return (true); | ||
else return (false); | ||
|
||
} | ||
|
||
// funcao main | ||
|
||
int main() | ||
{ | ||
|
||
return 0; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
// importando pacotes | ||
|
||
#include <stdbool.h> | ||
#include <stdio.h> | ||
#include <stdlib.h> | ||
#include <malloc.h> | ||
|
||
// criando estruturas | ||
|
||
typedef struct str | ||
{ | ||
int chave; | ||
struct str* prox; | ||
|
||
} NO; | ||
|
||
typedef struct | ||
{ | ||
NO* topo; | ||
|
||
} PILHA_DIN; | ||
|
||
// declarando funcoes | ||
|
||
void inicializacao(PILHA_DIN *p); | ||
void exibicao(PILHA_DIN *p); | ||
|
||
int tamanho(PILHA_DIN *p); | ||
int pop(PILHA_DIN *p); | ||
|
||
bool push(PILHA_DIN *p, int ch); | ||
|
||
// implementando funcoes | ||
|
||
void inicializacao(PILHA_DIN *p) | ||
{ | ||
p->topo = NULL; | ||
|
||
} | ||
|
||
void exibicao(PILHA_DIN *p) | ||
{ | ||
NO* aux = p->topo; | ||
|
||
while(aux != NULL) | ||
{ | ||
printf("%d ", aux->chave); | ||
aux = aux->prox; | ||
|
||
} | ||
|
||
} | ||
|
||
int tamanho(PILHA_DIN *p) | ||
{ | ||
int tam = 0; | ||
NO* aux = p->topo; | ||
|
||
while(aux != NULL) | ||
{ | ||
aux = aux->prox; | ||
tam++; | ||
|
||
} | ||
|
||
return (tam); | ||
|
||
} | ||
|
||
int pop(PILHA_DIN *p) | ||
{ | ||
if(p->topo == NULL) | ||
{ | ||
return (-1); | ||
|
||
} else { | ||
|
||
int resp = p->topo->chave; | ||
|
||
NO* aux = p->topo->prox; | ||
free(p->topo); | ||
p->topo = aux; | ||
|
||
return (resp); | ||
|
||
} | ||
|
||
} | ||
|
||
bool push(PILHA_DIN *p, int ch) | ||
{ | ||
NO* novo = (NO*) malloc(sizeof(NO)); | ||
novo->chave = ch; | ||
novo->prox = p->topo; | ||
p->topo = novo; | ||
|
||
} | ||
|
||
// funcao main | ||
|
||
int main() | ||
{ | ||
|
||
return 0; | ||
} |