summaryrefslogtreecommitdiff
path: root/9618-42-mj-2022/Question1_J22.py
diff options
context:
space:
mode:
Diffstat (limited to '9618-42-mj-2022/Question1_J22.py')
-rw-r--r--9618-42-mj-2022/Question1_J22.py46
1 files changed, 46 insertions, 0 deletions
diff --git a/9618-42-mj-2022/Question1_J22.py b/9618-42-mj-2022/Question1_J22.py
new file mode 100644
index 0000000..3b8e5c5
--- /dev/null
+++ b/9618-42-mj-2022/Question1_J22.py
@@ -0,0 +1,46 @@
+#1a
+StackData = [None for i in range(10)] # global variable because defined in the main script execution context.
+StackPointer = 0 # global variable because defined in the main script execution context.
+
+#1b
+def OutputAllElements():
+ global StackData
+ global StackPointer
+ for dataItem in StackData:
+ print(dataItem)
+ print(f"Stack pointer: {StackPointer}")
+
+#1c
+def Push(push_item: int):
+ global StackData
+ global StackPointer
+ if StackPointer == len(StackData):
+ return False
+ StackData[StackPointer] = push_item
+ StackPointer += 1
+ return True
+# 1 e i
+def Pop():
+ global StackData
+ global StackPointer
+ if StackPointer == 0:
+ return -1
+ StackPointer -= 1
+ item = StackData[StackPointer]
+ StackData[StackPointer] = None
+ return item
+
+#1d
+for i in range(11):
+ num = int(input(f"Number {i}: "))
+ successful = Push(num)
+ if successful:
+ print("Successfully pushed the item to the stack.")
+ else:
+ print("The stack is full.")
+print(StackData)
+
+# 1 e ii
+Pop()
+Pop()
+print(StackData) \ No newline at end of file