Pilhas Encadeadas Detalhadamente
Publicado por kmash (última atualização em 09/05/2011)
[ Hits: 8.915 ]
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; } }
Imprimindo uma arvore graficamente
Manipulação de um vetor de registros
Nenhum comentário foi encontrado.
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Meu Kubuntu não inicia, além do modo de recuperação (no meu dualboot (1)
Site da gontijo simplesmente não abre, ERR_HTTP2_PRO... (3)
Linux Mint não conecta Wi-Fi sem fio (19)