堆栈
class Stack:
def __init__(self, data=None):
if data is None:
data = []
self.stack = data
def push(self, data):
self.stack.append(data)
def pop(self):
self.stack.pop()
return self.stack
def show(self):
print("堆栈,自底先上:{}".format(self.stack))
队列
from collections import deque
class Queue:
def __init__(self, data=None):
if data is None:
data = []
self.queue = deque(data)
def in_queue(self, data):
self.queue.append(data)
def out_queue(self):
self.queue.popleft()
def show(self):
print("队列:{}".format(self.queue))
二叉树
class BinaryTree:
def __init__(self, data):
self.leftNode = None
self.data = data
self.rightNode = None
def add_left(self, data):
self.leftNode = BinaryTree(data)
return self.leftNode
def add_right(self, data):
self.rightNode = BinaryTree(data)
return self.rightNode
def show1(self):
if self.data:
print(self.data, end=" ")
if self.leftNode:
BinaryTree.show1(self.leftNode)
if self.rightNode:
BinaryTree.show1(self.rightNode)
def show2(self):
if self.data:
if self.leftNode:
BinaryTree.show1(self.leftNode)
print(self.data, end=" ")
if self.rightNode:
BinaryTree.show1(self.rightNode)
def show3(self):
if self.data:
if self.leftNode:
BinaryTree.show1(self.leftNode)
if self.rightNode:
BinaryTree.show1(self.rightNode)
print(self.data, end=" ")