Exercise 10.1-1

Using Figure 10.1 as a model, illustrate the result of each operation in the sequence \(\text{PUSH(}S\text{, 4)}\), \(\text{PUSH(}S\text{, 1)}\), \(\text{PUSH(}S\text{, 3)}\), \(\text{POP(}S\text{)}\), \(\text{PUSH(}S\text{, 8)}\), and \(\text{POP(}S\text{)}\) on an initially empty stack \(S\) stored in array \(S[1...6]\).

\[\begin{split} \text{Initial} & \rightarrow \begin{array}{c c c c c c c } & S_1 & S_2 & S_3 & S_4 & S_5 & S_6 \\ & \bbox[gray, 10px]{} & \bbox[gray, 10px]{} & \bbox[gray, 10px]{} & \bbox[gray, 10px]{} & \bbox[gray, 10px]{} & \bbox[gray, 10px]{} \\ \end{array} \\ \text{PUSH(} S \text{, 4)} & \rightarrow \begin{array}{c c c c c c } \hline & S_1 & S_2 & S_3 & S_4 & S_5 & S_6 \\ & 4 & \bbox[gray, 10px]{} & \bbox[gray, 10px]{} & \bbox[gray, 10px]{} & \bbox[gray, 10px]{} & \bbox[gray, 10px]{} \\ \end{array} \\ \text{PUSH(} S \text{, 1)} & \rightarrow \begin{array}{c c c c c c } \hline & S_1 & S_2 & S_3 & S_4 & S_5 & S_6 \\ & 4 & 1 & \bbox[gray, 10px]{} & \bbox[gray, 10px]{} & \bbox[gray, 10px]{} & \bbox[gray, 10px]{} \\ \end{array} \\ \text{PUSH(} S \text{, 3)} & \rightarrow \begin{array}{c c c c c c } \hline & S_1 & S_2 & S_3 & S_4 & S_5 & S_6 \\ & 4 & 1 & 3 & \bbox[gray, 10px]{} & \bbox[gray, 10px]{} & \bbox[gray, 10px]{} \\ \end{array} \\ \text{POP(} S \text{)} & \rightarrow \begin{array}{c c c c c c } \hline & S_1 & S_2 & S_3 & S_4 & S_5 & S_6 \\ & 4 & 1 & \bbox[gray, 10px]{} & \bbox[gray, 10px]{} & \bbox[gray, 10px]{} & \bbox[gray, 10px]{} \\ \end{array} \\ \text{PUSH(} S \text{, 8)} & \rightarrow \begin{array}{c c c c c c } \hline & S_1 & S_2 & S_3 & S_4 & S_5 & S_6 \\ & 4 & 1 & 8 & \bbox[gray, 10px]{} & \bbox[gray, 10px]{} & \bbox[gray, 10px]{} \\ \end{array} \\ \text{POP(} S \text{)} & \rightarrow \begin{array}{c c c c c c } \hline & S_1 & S_2 & S_3 & S_4 & S_5 & S_6 \\ & 4 & 1 & \bbox[gray, 10px]{} & \bbox[gray, 10px]{} & \bbox[gray, 10px]{} & \bbox[gray, 10px]{} \\ \end{array} \\ \end{split}\]