Exercícios Opcionais - Listas, pilhas e filas
1) Considere que um editor de texto representa os caracteres digitados como uma pilha, sendo que o último caracter lido fica no topo
● Alguns comandos apagam caracteres. Por exemplo, o backspace apaga o último caractere lido
● Alguns comandos apagam tudo o que já foi lido anteriormente
● Considere que, no seu editor, # representa backspacee @ indica “apagar tudo”
Faça um programa que execute essas ações usando o TAD pilha sequencial
2) Às vezes, na aritmética tradicional, faz-se necessário usar parênteses para dar o significado correto à expressão. Por ex, A*B-C/D = (A*B)-(C/D)
Notação polonesa (prefixa): operadores aparecem antes dos operandos e dispensa parênteses
● -*AB/CD
Notação polonesa reversa (posfixa): operadores aparecem depois dos operandos e dispensa parênteses
● AB*CD/-
Interpretação da notação posfixa usando pilha
● Empilha operandos até encontrar um operador
● Retira os operandos, calcula e empilha o resultado
● Até que se chegue ao final da expressão
Implemente uma função que calcule o valor de uma expressão posfixa passada
por parâmetro utilizando uma pilha sequencial
3) Implemente o sistema para a biblioteca usando uma fila
● Cada livro deve ser representado por um registro
● Nome do livro, disponibilidade, fila de espera
● Ao requisitar um livro, a pessoa entra na fila de espera se o livro não estiver disponível
● Quando um livro fica disponível, o primeiro da fila de espera do livro deve receber o livro
Implemente as demais funcionalidades (cadastra livro, retira livro, etc.) que julgar
necessárias
4) Escreva uma função que receba duas Listas Sequenciais (L1 e L2), intercale-as gerando uma terceira Lista Sequencial, L3