Pilhas Encadeadas Detalhadamente
Publicado por kmash (última atualização em 09/05/2011)
[ Hits: 9.170 ]
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;
}
}
AIMG-mostrar imagem fraquimentada em pontos aleatórios
Conversão de Decimal para Binário
Classe para manipulação e conversão de datas para std::string em C++
Nenhum comentário foi encontrado.
Como atualizar sua versão estável do Debian
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Script de montagem de chroot automatica
Atualizar Linux Mint 22.2 para 22.3 beta
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Instalar Dual Boot, Linux+Windows. (6)
Conky, alerta de temperatura alta (17)
De volta para o futuro - ou melhor, para o presente (parte 2) (3)









