使用連結串列實現棧的Python程式
當需要使用連結串列實現棧資料結構時,需要定義向連結串列新增(push)元素的方法和刪除(pop)連結串列元素的方法。
以下是演示:
示例
class Node: def __init__(self, data): self.data = data self.next = None class Stack_structure: def __init__(self): self.head = None def push_val(self, data): if self.head is None: self.head = Node(data) else: newNode = Node(data) newNode.next = self.head self.head = newNode def pop_val(self): if self.head is None: return None else: del_Val = self.head.data self.head = self.head.next return del_Val my_instance = Stack_structure() while True: print('push <value>') print('pop') print('quit') my_input = input('What action would you like to perform ? ').split() operation = my_input[0].strip().lower() if operation == 'push': my_instance.push_val(int(my_input[1])) elif operation == 'pop': del_Val = my_instance.pop_val() if del_Val is None: print('The stack is empty.') else: print('The deleted value is : ', int(del_Val)) elif operation == 'quit': break
輸出
push <value> pop quit What action would you like to perform ? push 56 push <value> pop quit What action would you like to perform ? push 78 push <value> pop quit What action would you like to perform ? push 90 push <value> pop quit What action would you like to perform ? pop The deleted value is : 90 push <value> pop quit What action would you like to perform ? quit
解釋
建立“Node”類。
建立另一個名為“Stack_structure”的類,其中包含必要的屬性。
它有一個“init”函式,用於將第一個元素(即“head”)初始化為“None”。
定義了一個名為“push_val”的方法,用於向棧中新增值。
定義了另一個名為“pop_val”的方法,用於刪除棧頂的值並返回被刪除的值。
建立“Stack_structure”的例項。
提供了三個選項:“push”、“pop”和“quit”。
“push”選項將特定值新增到棧中。
“pop”選項刪除棧頂元素。
“quit”選項退出迴圈。
根據使用者的輸入/選擇,執行相應的操作。
此輸出顯示在控制檯上。
廣告