3.26. Questões de Discussão

  1. Converta os seguintes valores em binário usando “dividir por 2.” Mostre a pilha dos restos.

    • 17

    • 45

    • 96

  2. Converta as seguintes expressões infixadas em prefixas (use parentização total):

    • (A+B)*(C+D)*(E+F)

    • A+((B+C)*(D+E))

    • A*B*C*D+E+F

  3. Converta as expressões infixa acima para posfixas (use parentização total).

  4. Converta as expressões infixa acima para posfix usando o algoritmo de conversão. Mostre a pilha conforme a conversão ocorre.

  5. Avalie as seguintes expressões posfixas. Mostre a pilha de operandos a medida que os operadores são processados.

    • 2 3 * 4 +

    • 1 2 + 3 + 4 + 5 +

    • 1 2 3 4 5 * + * +

  6. A implementação alternativa do TAD Queue é usando uma lista em que a parte o fim da fila está no final da lista. O que isso significa para o desempenho das operações em termos da notação O grande?

  7. Qual é o resultado de realizar na ordem reversa os dois passos do método add() de listas ligadas? Que tipo de resultados obtemos? Quais tipos de problemas podem ocorrer?

  8. Explique como em uma lista ligada remove() funciona quando o item a ser removido está no último nó.

  9. Explique como o método remove() funciona quando o item é o único nó na lista lisgada.

Next Section - 3.27. Programming Exercises