第二篇 python中栈与队列

python中栈与队列初步介绍

一些回答与思考

前两篇博客发出以后我们收到了一些留言,我们也对此聊了一些。

首先关于环境变量的问题,如果你是和我一样是刚入门的童鞋,那么一定要勾选我在入门第一篇提示的那个annaconda的选项,这个操作会让annaconda帮我们配置好一些环境变量,当你安装完以后用CMD(命令行窗口)输入python 回车之后光标之前会有>>> 这表示你已经处于python的环境中,也就是你的python安装成功了,可以使用了。目前入门阶段一般比较难有需要配置环境变量的情况,随着大家对python的深入学习和了解应该在以后需要配置的时候也能自如应对了。万事开头难,不要放弃治疗呀~

这一期本来是想写一个简单的爬虫的,但是有感觉涉及一些不能忽略的基础,所以还是从头开始吧,最近几期会做数据结构相关的内容,这次是对栈与队列的初步引入,下期的内容可能是检索也可能是写一个迷宫。不管了,先刨坑再填坑这样比较有动力。

相关概念

这个部分是我想加进来,如果对栈和队列有一定了解的童鞋可以掠过。
数据类型有一下几种:
整数 如1,2,3,4…
浮点数(小数)
字符串 字符串是数字、字母、下划线组成的一串字符,用‘单引号’或“双引号“括起来的任意文本,比如’大猪蹄子’,“小猪蹄子”,当然还可以“123”等。

数据的逻辑结构可以分为线性结构非线性结构
线性结构可以分为一般线性表,受限线性表,推广线性表;
(受限线性表又可以分为栈,队列,串;
推广线性表又可以分为数组和广义表;)
非线性结构可以分为集合,树形结构,图状结构
(树形结构有可以分为一般树和二叉树;
图状结构有可以分为有向图和无向图)

集合:结构中的数据元素除了同属于一种类型外,数据之间没有逻辑关系。
线性结构:数据元素之间一对一的关系,结点按逻辑关系依次排列形成一个“锁链”。
树形结构: 数据元素之间一对多的关系,形态有像自然界中的树。
图状结构或网状结构:结构中的数据元素之间存在多对多的关系,结点按逻辑关系互相缠绕,任何两个结点都可以邻接。
线性表:线性表是最常使用的数据结构,一个线性表是n个具有相同特性的数据元素的有限序列。线性表主要由顺序表示链式表示。在实际应用中,常以栈、队列、字符串等特殊形式使用。(顺序表示指的是用一组地址连续的存储单元依次存储线性表的数据元素,以“物理位置相邻”来表示线性表中数据元素间的逻辑关系,可随机存取表中任一元素。链式表示指的是用一组任意的存储单元存储线性表中的数据元素,称为线性表的链式存储结构。它的存储单元可以是连续的,也可以是不连续的。)

栈和队列

感觉每次都是引入很多,真正的东西很少…下面就让我们我们来看看栈和队列吧

栈(stack),是一种运算受限的线性表,仅在表尾进行插入或删除操作的线性表。我们把表尾称作栈顶(top),表头称作栈底(bottom),在运用层面,我们只要记住,栈后进先出, 走栈尾即可。

栈的代码很简单

stack = [ ] # 初始化一个栈,[]中为要放入栈的对象
stack.pop() #从栈尾取出一个节点
stack.append() #增加一个节点
stack == [] # 判断是否是空栈

队列(Queue)也是一种运算受限的线性表。它只允许在表的一端进行插入,而在另一端进行删除。关于队列我们只要记好先进先出


queue.= [] # 初始化一个队列,[]中为要放入队列的对象
queue.pop(0) #从队列头取出一个节点(队列为先进先出,所以从头拿数,用0定位第一位置)
queue.append() #增加一个节点
queue == [] # 判断是否是空队列

猝不及防地结束。。。下周更新的内容会和这些呼应上的。如果大家需要看看例子的话可以先看看我们的实战版的第一篇里面就有用到栈喔

猜你喜欢

转载自blog.csdn.net/weixin_43086925/article/details/84707691