python实现栈和队列及其基本操作

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程宇员面试算法宝典》

你可能感兴趣的:(python实现栈和队列及其基本操作)