python每日算法 | 数据结构基础:栈与队列以及经典的迷宫问题

 创作不易,来了的客官点点关注,收藏,订阅一键三连❤😜        



前言

程序=数据结构+算法,算法是数学理论和工程实现的杂糅,是一个十分有趣神奇的学问。搞懂算法用另一种视角看编程,又会是一种全新的感受,如果你也在学习算法,不妨跟主任萌新超差一起学习,拿下算法!


系列文章目录

python每日算法 | 基数排序PK快速排序,手撕基数排序算法!

python每日算法 | 图文+生动实例详解桶排序

python每日算法 | 揭开计数排序的秘密


概述

本期的内容将介绍数据结构基础知识(一):栈与队列以及最经典的迷宫问题。


目录

前言

系列文章目录

概述

超超python每日算法思维导图

数据结构基础知识

数据结构是什么?

数据结构的逻辑结构

线性结构

列表

栈是什么

栈的基本操作

用python实现栈

栈的应用:括号匹配问题

队列

队列是什么

双向队列

队列的实现方式:环形队列

用python实现队列

python队列内置模块:deque

队列的应用:使用deque实现Linux的tail命令

迷宫问题

栈:深度优先搜索

代码实现

队列:广度优先搜索

代码实现


超超python每日算法思维导图

数据结构基础知识

数据结构是什么?

数据结构是指相互之间存在着一种或多种关系的数据元素的集合该集合中数据元素之间的关系组成。简单来说,数据结构就是设计数据以何种方式组织并存储在计算机中

比如:列表、集合与字典等都是一种数据结构。

N.Wirth说过: “程序=数据结构+算法”

数据结构的逻辑结构

数据结构按照其逻辑结构可分为线性结构、树结构、图结构。

线性结构

线性结构:数据结构中的元素存在一对一的相互关系,例如列表。

树结构:数据结构中的元素存在一对多的相互关系,例如堆。

图结构:数据结构中的元素存在多对多的相互关系

列表

列表(python中叫列表,其他语言称数组)是一种基本数据类型。

关于列表的问题:

列表中的元素是如何存储的?

32位机器上一个整数占4个字节,一个地址占4个字节,64位一个地址占8个字节。

现有如下列表:

1

2

3

4

5

以32位机器为例,数组的存储是这样的:

若元素1的内存地址位100,则元素2的内存地址为104,以此类推,那么a[2]=100+2*4=108。

而对于列表,若1的地址为200,2-->300,3--88,列表是现通过查找地址,然后通过一个地址查找对应一个元素。

200

300

88

数组和列表的区别:

1.数组的元素类型需要一致,列表的元素类型不需要一致;

2.数组的长度是固定的,python

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chaochao️

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值