Pilhas Encadeadas Detalhadamente

Publicado por kmash (última atualização em 09/05/2011)

[ Hits: 8.736 ]

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.

  



Esconder código-fonte

//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;
   }
}

Scripts recomendados

Biblioteca math.h

Lista dinâmica de variáveis

Biblioteca estática para manipulação de pilhas

Emulador de Chip8 (com gráficos)

Rotação à esquerda árvore Binária


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts