python实现栈
class MyStack:
# 模拟栈
def __init__(self):
self.items = []
# 判断栈是否为空
def isEmpty(self):
return len(self.items) ==0
# 返回栈的大小
def size(self):
return len(self.items)
# 返回栈顶元素
def top(self):
if not self.isEmpty():
return self.items[len(self.items) -1]
else:
return None
# 弹栈
def pop(self):
if len(self.items) >0:
return self.items.pop()
else:
print("栈已经为空")
return None
#压栈
def push(self, item):
self.items.append(item)
if __name__ =="__main__":
s = MyStack()
s.push(4)
s.push(3)
print("栈顶元素为:" +str(s.top()))
print("栈大小为:" +str(s.size()))
s.pop()
print("弹栈成功")
python中函数知识点:函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回。因此,函数内部通过条件判断和循环可以实现非常复杂的逻辑。
python实现队列
class MyQueue:
def __init__(self):
self.arr = []
self.front =0 # 头
self.rear =0 # 尾
# 判断队列是否为空
def isEmpty(self):
return self.front ==self.rear
# 返回队列大小
def size(self):
return self.rear -self.front
# 返回队列首元素
def getFront(self):
if self.isEmpty():
return None
return self.arr[self.front]
# 返回队列尾元素
def getBack(self):
if self.isEmpty():
return None
return self.arr[self.rear -1]
# 删除队列头元素
def deQueue(self):
if self.rear >self.front:
self.front +=1
else:
print("队列已经为空")
# 把新元素加入队列尾
def enQueue(self, item):
self.arr.append(item)
self.rear +=1
if __name__ =="__main__":
q = MyQueue()
q.enQueue(1)
q.enQueue(2)
print("队列头元素:"+str(q.getFront()))
print("队列尾元素:"+str(q.getBack()))
print("队列大小为:"+str(q.size()))
python函数知识点:
1、函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回。因此,函数内部通过条件判断和循环可以实现非常复杂的逻辑。
2、如果没有return语句,函数执行完毕后也会返回结果,只是结果为None。return None可以简写为return。
3、如果想定义一个什么事也不做的空函数,没想好的话,可以用pass语句,让代码能运行起来。
4、函数可以返回多个值吗?答案是肯定的。但其实这只是一种假象,Python函数返回的仍然是单一值。Python的函数返回多值其实就是返回一个tuple,可以忽略省略号:returnnx, ny。可以通过tuple切片的方式取函数值。例如:func[0],func[1]
参考资料:《python程宇员面试算法宝典》
网友评论