Pilhas Encadeadas Detalhadamente
Publicado por kmash (última atualização em 09/05/2011)
[ Hits: 9.141 ]
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;
}
}
Programa recursivo para obter raiz quadrada
Nenhum comentário foi encontrado.
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Criação de diretórios e aplicação de restrições de acesso no Linux
Instalando partes faltantes do Plasma 6









