Pilhas Encadeadas Detalhadamente
Publicado por kmash (última atualização em 09/05/2011)
[ Hits: 9.091 ]
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;
}
}
gerador automatico de Makefiles
Estrutura de dados: Lista dinâmica duplamente encadeada
Nenhum comentário foi encontrado.
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Linux é a solução para o fim do Windows10? [RESOLVIDO] (6)
Assinador JNLP do Site Portal da Nota Fiscal Eletrônica (0)
Programa fora de escala na tela do pc (29)









