Pilhas Encadeadas Detalhadamente
Publicado por kmash (última atualização em 09/05/2011)
[ Hits: 9.213 ]
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;
}
}
Função "Partição de Inteiros" Recursiva SEM Tabela Estática em C
Script para trocar o papel de parede do fluxbox em GTK
Nenhum comentário foi encontrado.
Papagaiando o XFCE com temas e recursos
WhatsApp com Chamadas no Linux via Waydroid
XFCE - quase um Gnome ou Plasma mas muito mais leve
LXQT - funcional para máquinas pererecas e usuários menos exigentes
Removendo entradas de boot UEFI "fantasmas" via terminal
Atualizações de Segurança Automáticas no Debian
Como cortar as partes de um vídeo com passagens de áudio em branco
Tiling automático no KDE Plasma
SNMP Scan no OCS Inventory só funciona com HTTPS corretamente configurado
Alguém tem que acabar com ANATEL!!! (2)
Uma pergunta bem simples mas não achei resposta (ainda) (0)
Reflexão sobre a sobrevivência do Gentoo Linux (6)









