Pilhas Encadeadas Detalhadamente
Publicado por kmash (última atualização em 09/05/2011)
[ Hits: 9.194 ]
Download implementacaoPILHAencadeada.cpp
Script de Pilha Encadeada em C++
Descrição:
PILHA ENCADEADA
- A pilha é dinamica
- Os itens são criados em tempo de execução
- A pilha é formada por nodos
- Cada nodo contém um item da pilha e o endereço do nodo que está imediatamente abaixo
- Há um nodo cabeça no topo da pilha
Segue no anexo toda a ESTRUTURA desse tipo de pilha.
//ESTRUTURA PILHA ENCADEADA
//Arquivo: pilha.h (biblioteca)
struct tnodo{
int item;
tnodo *prox;
};
struct stack{
tnodo *top;
};
//PROTOTIPOS
void init (stack *p);
int empty(stack *p);
void push(stack *p,int x);
int pop(stack *p);
/////////////////////////////////////////
//Arquivo: pilha.cpp
//Implementando operações
#include<stdio.h>
#include "pilha.h"
//init: faz a pilha ficar vazia (criando um nodo cabeça e fazendo o top apontar para ele
void init(stack *p)
{
p->top=new tnodo; //alocando memoria
p->top->prox=NULL; //iniciando pilha (pilha vazia por que o nodo 1 está NULL, NULL =fim da pilha
}
//empty: retorna 1 se a pilha esá vazia, caso contrário, retorna 0.
int empty(stack *p)
{
if (p->top->prox==NULL)
return 1;
else return 0;
}
//push: insere o item x no topo da pilha p
void push(stack *p,int x)
{
tnodo *aux;
aux=new tnodo;
aux->prox=p->top;
p->top->item=x;
p->top=aux;
}
//pop: retorna o item que está no topo da pilha p retirando-o da mesma
int pop(stack *p)
{
if(empty(p)){
printf("Erro: pilha vazia\n");
exit(1);
}
else{
aux=p->top;
p->top=p->top->prox;
delete aux;
return(p->top->item);
}
//printfStack: imprime os itens da pilha p
void printStack(stack *p)
{
tnodo *aux=p->top->prox;
while(aux!=NULL)
{
printf("%d\n",aux->item);
aux=aux->prox;
}
}
Dangerous Tux Game com gráficos
Fibbonacci com Memoization - O(n)
Emulador de Chip8 (com gráficos)
Nenhum comentário foi encontrado.
Gentoo binário em 2026: UEFI, LUKS, Btrfs e Systemd
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Forçar resolução teimosa no Wayland
Como fazer um pendrive bootável utilizando a ferramenta Rufus
Servidor vs Computador Convencional
Como administrar uma rede Linux através da ferramenta Webmin
Alguém aqui mexe com arduino? (2)
Audio Failure on Acer Aspire AS4738 – Intel 5 Series HD Audio (Linux M... (1)









