Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Pilha sequencial, Notas de estudo de Engenharia Telemática

Implementação da biblioteca de pilha sequencial

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 30/11/2010

samuel-santos-22
samuel-santos-22 🇧🇷

4.6

(41)

262 documentos

1 / 2

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
1
Disciplina: Estrutura de Dados I
Professor: Alex Sandro C. Rego
PILHA SEQUENCIAL
Definição da Estrutura de Dados do tipo PILHA SEQUENCIAL
#define MAX 10
// Definindo a estrutura de dados
typedef struct {
int elemento[MAX]; // vetor que vai armazenar os elementos da pilha
int topo ; // controlador do topo da pilha
}pilha;
Criar pilha
/* Criando uma pilha vazia */
void criaPilha( pilha *p ) {
p->topo = -1; // condicao de pilha vazia
}
Verificar se a pilha está vazia
int pilhaVazia( pilha p ) {
return ( p.topo == -1 );
}
Verificar se a pilha está cheia
int pilhaCheia( pilha p ) {
return ( p.topo+1 == MAX );
}
Obter o elemento que está no topo da pilha, sem retira-lo
int elementoTopo( pilha p, int *valor) {
if ( pilhaVazia( p ) )
return 0;
*valor = p.elemento[p.topo];
return 1;
}
Empilhar um elemento
int empilha( pilha *p, int valor) {
if ( pilhaCheia( *p ) )
return 0;
(p->topo)++;
p->elemento[p->topo] = valor;
return 1;
}
Desempilhar um elemento
int desempilha( pilha *p, int *valor) {
if ( pilhaVazia( *p ) )
return 0;
*valor = p->elemento[(p->topo)--];
return 1;
}
Imprimir elementos da pilha
int imprimirElementos( pilha p ) {
int i;
if ( pilhaVazia( p ) )
return 0;
printf("\n[ ");
for (i=0; i<=p.topo; i++)
printf("%d ",p.elemento[i]);
printf("]");
return 1;
}
pf2

Pré-visualização parcial do texto

Baixe Pilha sequencial e outras Notas de estudo em PDF para Engenharia Telemática, somente na Docsity!

Disciplina: Estrutura de Dados I

Professor: Alex Sandro C. Rego

PILHA SEQUENCIAL

Definição da Estrutura de Dados do tipo PILHA SEQUENCIAL #define MAX 10 // Definindo a estrutura de dados typedef struct { int elemento[MAX]; // vetor que vai armazenar os elementos da pilha int topo ; // controlador do topo da pilha }pilha;

Criar pilha /* Criando uma pilha vazia */ void criaPilha( pilha *p ) { p->topo = -1; // condicao de pilha vazia }

Verificar se a pilha está vazia int pilhaVazia( pilha p ) { return ( p.topo == -1 ); }

Verificar se a pilha está cheia int pilhaCheia( pilha p ) { return ( p.topo+1 == MAX ); }

Obter o elemento que está no topo da pilha, sem retira-lo int elementoTopo( pilha p, int *valor) { if ( pilhaVazia( p ) ) return 0; *valor = p.elemento[p.topo]; return 1; }

Empilhar um elemento int empilha( pilha *p, int valor) { if ( pilhaCheia( *p ) ) return 0; (p->topo)++; p->elemento[p->topo] = valor; return 1; }

Desempilhar um elemento int desempilha( pilha *p, int *valor) { if ( pilhaVazia( *p ) ) return 0; *valor = p->elemento[(p->topo)--]; return 1; }

Imprimir elementos da pilha int imprimirElementos( pilha p ) { int i; if ( pilhaVazia( p ) ) return 0; printf("\n[ "); for (i=0; i<=p.topo; i++) printf("%d ",p.elemento[i]); printf("]"); return 1; }

Obter a quantidade de elementos na Pilha int tamanho( pilha p ) { return p.topo+1; }