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


Questões de Pilhas Sequenciais, Exercícios de Estruturas de Dados e Algoritmos

Lista de exercícios de Estrutura de Dados sobre pilhas sequenciais.

Tipologia: Exercícios

Antes de 2010

Compartilhado em 29/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
Estrutura de Dados I Prof: Alex Sandro C. Rêgo
Disciplina:Estrutura de Dados
Professor:Alex Sandro da C. Rêgo
URL : www.alex.buscapb.com.br/ed1
Aluno:
Pilha Sequencial
1) Implemente um TAD Pilha (com representação seqüencial)em uma biblioteca chamada Stack.C usando o
“char” como tipo. Adici one nesta biblioteca, todas as operações bási cas de pilhas vistas em sala de aula.
2) Faça um programa que manipule uma pilha utilizando as seguintes opções de um menu:
Editor de Pilha v1.0
================
1- Inicializar
2- Empilhar
3- Desempilhar
4- Elemento do topo
5- Imprimir pilha
6- Inverter elementos da pil ha
7- Esvaziar a pilha
8- Mudar de pilha
Digite sua opção: [ ]
Observações:
••Oprograma deve fazer o tratamento para todas as operações de uma pilha. Não deixe que o usuário tente
empilhar algum elemento sem que a pilha tenha si do inicializada;
••Mostre mensagens quando algum alerta de pilha vazia ou cheia for emitido;
••Ao exibir o elemento do topo, não desem pilhe o conteúdo da pilha!!!!
••Ao desempilhar um elemento da pilha, mostre o valor que estava no topo.
••Permita que seja manipulado no máximo 3 pilhas. A primeira pilha a ser utilizada pelo usuário é a pilha 1.
Quando a opção de mudar pilha for selecionada, forneça a possibilidade do usuário escolher a pilha de
interesse, mas lembre-s e que o programa só vai trabalhar com 4 pilhas. Se a pilha 2for escolhida, todas
as operações do menu devem ser realizadas na pilha 2, e assim por diante.
••Implemente as seguintes operações:
void esvaziarPilha( pilha *p );
void imprimirPilha( pilha p );
int inverte( pilha *p );
••Utilize as operações básicas sobre pilhas para implementar a função de inverter os elementos da pilha.
3) Considere a existência de um tipo abstrato Pilha de números de ponto flutuante, cuja interface está defi nida
no arquivo pilha.h da seguinte forma:
typedef struct pilha Pilha;
Pilha* cria(void);
void push (Pilha* p, float v);
float pop (Pilha* p);
int vazia (Pilha* p);
void libera (Pilha* p);
Sem conhecer a representação interna desse ti po abstrato Pilha e usando apenas as funções declaradas no
arquivo pilha.h,implemente uma função que receba uma pilha como parâmetro e retorne o valor armazenado
em seu topo, sem remover este valor da pilha. Essa função deve obedecer o protótipo:
float topo (Pilha* p);
6
Lista
pf2

Pré-visualização parcial do texto

Baixe Questões de Pilhas Sequenciais e outras Exercícios em PDF para Estruturas de Dados e Algoritmos, somente na Docsity!

Estrutura de Dados I Prof: Alex Sandro C. Rêgo

Disciplina : Estrutura de Dados

Professor : Alex Sandro da C. Rêgo

URL : www.alex.buscapb.com.br/ed

Aluno :

Pilha Sequencial

  1. Implemente um TAD Pilha (com representação seqüencial) em uma biblioteca chamada Stack.C usando o “char” como tipo. Adicione nesta biblioteca, todas as operações básicas de pilhas vistas em sala de aula.

  2. Faça um programa que manipule uma pilha utilizando as seguintes opções de um menu :

Editor de Pilha v1. ================ 1- Inicializar 2- Empilhar 3- Desempilhar 4- Elemento do topo 5- Imprimir pilha 6- Inverter elementos da pilha 7- Esvaziar a pilha 8- Mudar de pilha

Digite sua opção: [ ]

Observações:   O programa deve fazer o tratamento para todas as operações de uma pilha. Não deixe que o usuário tente empilhar algum elemento sem que a pilha tenha sido inicializada;   Mostre mensagens quando algum alerta de pilha vazia ou cheia for emitido;   Ao exibir o elemento do topo, não desempilhe o conteúdo da pilha!!!! ^ ^ Ao desempilhar um elemento da pilha, mostre o valor que estava no topo.   Permita que seja manipulado no máximo 3 pilhas. A primeira pilha a ser utilizada pelo usuário é a pilha 1. Quando a opção de mudar pilha for selecionada, forneça a possibilidade do usuário escolher a pilha de interesse, mas lembre-se que o programa só vai trabalhar com 4 pilhas. Se a pilha 2 for escolhida, todas as operações do menu devem ser realizadas na pilha 2 , e assim por diante.   Implemente as seguintes operações:

void esvaziarPilha( pilha *p ); void imprimirPilha( pilha p ); int inverte( pilha *p );   Utilize as operações básicas sobre pilhas para implementar a função de inverter os elementos da pilha.

  1. Considere a existência de um tipo abstrato Pilha de números de ponto flutuante, cuja interface está definida no arquivo pilha.h da seguinte forma:

typedef struct pilha Pilha;

Pilha* cria(void);

void push (Pilha* p, float v);

float pop (Pilha* p);

int vazia (Pilha* p);

void libera (Pilha* p);

Sem conhecer a representação interna desse tipo abstrato Pilha e usando apenas as funções declaradas no arquivo pilha.h, implemente uma função que receba uma pilha como parâmetro e retorne o valor armazenado em seu topo, sem remover este valor da pilha. Essa função deve obedecer o protótipo:

float topo (Pilha* p);

Lista 6

Estrutura de Dados I Prof: Alex Sandro C. Rêgo

  1. Considere a existência de um tipo abstrato Pilha de números de ponto flutuante, cuja interface está definida no arquivo pilha.h da seguinte forma:

typedef struct pilha Pilha;

Pilha* cria(void);

void push (Pilha* p, float v);

float pop (Pilha* p);

int vazia (Pilha* p);

void libera (Pilha* p);

Sem conhecer a representação interna desse tipo abstrato Pilha e usando apenas as funções declaradas no arquivo pilha.h, implemente uma função que receba duas pilhas, p1 e p2, e passe todos os elementos da pilha p2 para o topo da pilha p1. A figura a seguir ilustra essa concatenação de pilhas:

Note que ao final dessa função, a pilha p2 vai estar vazia e a pilha p1 conterá todos os elementos das duas pilhas. Essa função deve obedecer o seguinte protótipo:

void concatena_pilhas (Pilha* p1, Pilha* p2);

Dica: Essa função pode ser implementada com mais facilidade através de uma variável auxiliar do tipo pilha para fazer a transferência dos elementos entre as duas pilhas.

  1. Escreva um programa que receba uma linha de texto e use uma pilha para exibir a linha invertida.

  2. Escreva um programa que use uma pilha para determinar se uma string é um palíndromo, isto é, se tem a mesma leitura no sentido normal e no sentido inverso. O programa deve ignorar espaços em branco, pontuação e caracteres especiais (-, *, ).