> ### Quiz Questions
> For Chapter 11

> THIS PAGE CONTAINS A SAMPLE quiz on material from Chapter 11 of this on-line Java textbook. You should be able to answer these questions after studying that chapter. Sample answers to all the quiz questions can be found here.

> Question 1: Explain what is meant by a recursive subroutine.

> Question 2: Consider the following subroutine:

>             static void printStuff(int level) {
>                 if (level == 0) {
>                    System.out.print("*");
>                 }
>                 else {
>                    System.out.print("[");
>                    printStuff(level - 1);
>                    System.out.print(",");
>                    printStuff(level - 1);
>                    System.out.println("]");
>                 }
>             }

> Show the output that would be produced by the subroutine calls `printStuff(0)`, `printStuff(1)`, `printStuff(2)`, and `printStuff(3)`.

> Question 3: Suppose that a linked list is formed from objects that belong to the class

>              class ListNode {
>                 int item;       // An item in the list.
>                 ListNode next;  // Pointer to next item in the list.
>              }

> Write a subroutine that will find the sum of all the `ints` in a linked list. The subroutine should have a parameter of type `ListNode` and should return a value of type `int`.

> Question 4: What are the three operations on a stack?

> Question 5: What is the basic difference between a stack and a queue?

> Question 6: What is an activation record? What role does a stack of activation records play in a computer?

> Question 7: Suppose that a binary tree is formed from objects belonging to the class

>              class TreeNode {
>                 int item;       // One item in the tree.
>                 TreeNode left;  // Pointer to the left subtree.
>                 TreeNode right; // Pointer to the right subtree.
>              }

> Write a recursive subroutine that will find the sum of all the nodes in the tree. Your subroutine should have a parameter of type `TreeNode`, and it should return a value of type `int`.

> Question 8: What is a postorder traversal of a binary tree?

> Question 9: Suppose that a `<multilist>` is defined by the BNF rule

>           <multilist>  ::=  <word>  |  "(" [ <multilist> ]... ")"

> where a `<word>` can be any sequence of letters. Give five different `<multilist>'s` that can be generated by this rule. (This rule, by the way, is almost the entire syntax of the programming language `LISP`! `LISP` is known for its simple syntax and its elegant and powerful semantics.)

> Question 10: Explaining what is meant by parsing a computer program.

[ Answers | Chapter Index | Main Index ]