| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 数据结构与算法之Python实现——线性表(一) -> 正文阅读 |
|
[数据结构与算法]数据结构与算法之Python实现——线性表(一) |
🐳 前言数据结构与算法的一刷是在前几个月的时候用C语言区实现的,那时候也刚开始接触C语言,只知道个C语言的大概,然后却不怎么会应用。 之后在网上买了一本数据结构的书后就开始用C语言去学习。在用C语言去学习的过程中,是十分痛苦的,很多概念都十分抽象,也只有自己想方设法地去理解。但收获也是颇丰,用了几个月硬生生把它啃下来后,也的的确确发现自己对C语言的理解和应用更上一层楼。 但在后面接触python后,我又发现自己对数据结构与算法的学习仅仅停留在C语言的基础上。在我想用python写代码时,常常无从下手,去翻阅别人的博客后,也只能理解个大概,从写代码上来说还是不太行。 于是一直指导我的一位大佬建议我再用python去刷一遍数据结构,告诉我数据结构与算法不是只局限在某个语言之上,它锻炼的是我们的底层思维逻辑和用代码解决实际问题的能力。 数据结构与算法的出现,是针对于解决某些具体的问题,而通过问题寻找解答方法的这种思路正是我们要学习的。 对于一个具体的问题,我们知道怎么解决是一回事,如何用代码去解决又是另一回事。所以这就要求对计算机语言有较高的熟悉度和基于计算机语言的逻辑思维。(说个题外话,因为大二有一门概率论与数理统计的课程,所以之前指导我的那个大佬叫我用C语言去实现这门课的一些试题,大家有兴趣的话可以看一看C语言实现概率论与数理统计) 在此,我会用博客来记录用python实现数据结构与算法的学习过程,希望大家多多支持 🐳 理解线性表什么是线性表?或者说什么是线性? 线性可以理解为“线”的性质,也就是说线性就类似于“一条线”的性质。通过这条线,将一个一个数据连接起来,每个数据与数据之间的关系一定是前后关系,意思是一个数据只能在另一个数据的前面或者后面,不能在其它位置,此即线性表。 线性表又可以进一步细分为两种——顺序表和链表。请看下图区别👇:
链表就是通过某种方式将数据链接起来,这里的有向线段是为了突出它们的前后关系。 下面先对顺序表作具体说明(关于链表的类型和操作较多,所以在下一条博客中整理出来)👇: 🐳 顺序表在Python中我们用list数据类型来作为“线性表”,为什么?
像元组(它不支持改变其每部状态的任何操作)就不满足上述第二个条件,所以元组不能用作为线性表。 🐋 顺序表的一些主要操作🐬 初始化 先看总代码👇
执行结果为 代码分析:
在每次对表进行操作时都要思考一下这个操作是否一定能执行,若不是百分之百能执行,就需要进行相应的判断,对不能执行的情况作出解释。 例如,添加元素时,如果表满了,那么添加元素这个操作就不能执行,此时就可以写一行代码提醒一下表已满,也可以继续说明是否需要增加空间,若需要就调用增加空间的函数…
这个要用到python中序列相加的概念,同一数据类型的序列可以相加然后合并。 例如列表和列表相加,合成一个大列表;元组和元组相加,合成一个大元组等等
顺序表的优缺点 优:
缺:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 19:54:25- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |