Pilhas Encadeadas Detalhadamente

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

[ Hits: 8.687 ]

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

Informação do sistema

torre de hanoi em C

Jogo defutebol simples (com gráficos)

Busca em texto - Lista encadeada

jogo Sokoban (com gráficos)


  

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