|
发表于 2020-6-18 20:23:23
|
显示全部楼层
本帖最后由 1223253411 于 2020-6-18 20:51 编辑
第一问:栈 首先你要知道栈模型是什么,你也说了它是一个后进先出的模型对吧,但!!!它是一种逻辑结构!,什么是逻辑结构呢,它表示的是一种数据与数据之间的抽象的,描述着数据的存储方式与结构。
所以,不是空列表怎么传进去的,而是用列表做了一个栈!然后让列表来满足栈的使用,也就是为栈创建方法,在传参的时候如果传了一个列表就把传入的列表数据拿出放到栈中。
第二问:问一下,bool值为false的情况有哪些,空,零,不存在,对不对,那self.stack为空也就是当栈为空的时候,是不是就返回了false,not是不是就把false变为了true,也就是在栈为空时,返回一个true
第三问:你看,它是不是和第二问一样,在栈为空的也就时列表为空的情况下返回true,那样的话还能返回数据吗,没数据怎么返回数据,就给你打印一句咯,它也可以不打印,你是定义者,所有的东西你来决定,你不想让它打印就不让它打印,可以就让它返回一个None,反正只要提醒使用者栈为空无法提取数据就行,
那有数据怎么办呢,给他啊,谁调用的这个方法就给谁啊,这个栈使用列表做的对吧,栈是什么,后进先出,当以列表的首部作为栈底,尾部作为栈顶,那要返回的方法是不是应该从列表的尾部返回数据,pop不就是让列表的尾部数据弹出的方法吗,不解释pop ,所以使用return将栈顶元素返回给使用者
ps: 一个逻辑结构可以由多个存储结构来完成,所以只不过这里是用了列表来完成这个模型,你也可以用其他的,只要满足线性结构、后进先出的原则,满足栈的使用方法,就行
我可能说的有一些不严谨,如果还有不理解的地方,或我有什么地方说错了,就和我说一下,我在改改
|
|