33/Python-DataStructure-and-Algorithms

/Linked_List/Stack/Stack.py
import math
class MinStack:
#初始化栈
def __init__(self):
self.stack = []
self.min = []

#压入元素
def push(self, x):
self.stack.append(x)
if len(self.min) == 0:
self.min.append(x)
else:
self.min.append(min(x, self.min[-1]))

#弹出元素
def pop(self):
if len(self.stack) == 0:
return None
self.stack.pop()
self.min.pop()

#获取最小值
def top(self):
if len(self.stack) == 0:
return None
return self.stack[-1]

#获取最小值
def getMin(self):
if len(self.min) == 0:
return None
return self.min[-1]

if __name__ == "__main__":
stack = MinStack()
stack.push(-2)
stack.push(0)
stack.push(-3)
stack.push(-1)
print(stack.getMin())
stack.pop()
print(stack.top())
print(stack.getMin())

/Stack/Linked_List/LinkedList.py
import math
class Stack:
def __init__(self):
self.stack = []

def push(self, x):
self.stack.append(x)
print(self.stack)

def pop(self):
if len(self.stack) == 0:
return None
return self.stack.pop()

def top(self):
if len(self.stack) == 0:
return None
return self.stack[-1]

def getMin(self):
if len(self.stack) == 0:
return None
return min(self.stack)

if __name__ == "__main__":
stack = Stack()
stack.push(-2)
stack.push(0)
stack.push(-3)
stack.push(-1)
print(stack.getMin())
stack.pop()
print(stack.top())
print(stack.getMin())

/Stack/Linked_List/Stack.py
import math
class Queue:
def __init__(self):
self.stack = []

def enqueue(self, x):
self.stack.append(x)
print(self.stack)

def dequeue(self):
if len(self.stack) == 0:
return None
self.stack.insert(0, self.stack.pop())
print(self.stack)

def front(self):
if len(self.stack) == 0:
return None
return self.stack[-1]

def isEmpty(self):
if len(self.stack) == 0:
return True
return False

if __name__ == "__main__":
queue = Queue()
queue.enqueue(1)
queue.enqueue(2)
queue.enqueue(3)
queue.enqueue(4)
queue.dequeue()
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())
print(queue.front())