美文网首页Python基础
python实现栈和队列及其基本操作

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

作者: 极客与宽客 | 来源:发表于2019-03-30 12:52 被阅读6次

    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实现栈和队列及其基本操作

        本文链接:https://www.haomeiwen.com/subject/msejbqtx.html