
数据结构.png
参考自严蔚敏《数据结构(C语言版)(第2版)》。
我将书中的部分知识内容转换成Python对应的实现和应用,方便大家了解。本篇章会持续更新。
为什么要学习数据结构?
一,数据结构是编写程序的底层能力
我深有体会,哪怕是编写一个计算器,其中运用的数据结构的知识都堪称精妙。
比如,计算表达式 1 + 1, 如果系统没有提供这个功能,你会发现你根本实现不了。
有了数据结构,才能实现想要的功能。
二, 数据结构有助于编写高效的算法
选择恰当的数据结构,有助于提高程序的运行效率和稳定性。尤其是对时间复杂度和空间复杂度的分析(之后会介绍),有助于我们衡量程序的运行。
三,数据结构是面试的重点
数据结构和算法历来都是大厂的一个重点考察的方向。
所以,数据结构很重要。
数据结构简单介绍
最基础的数据结构是线性表,其中线性表有两种:顺序表和链表。举个例子来说,就是0 1 2 3 4 5 6 7...
通过线性表,可以实现两个应用:栈和队列。栈是一种后进先出的数据结构,就好比一堆盘子,洗碗的时候是从下往上堆放,取碗的时候都是从上往下取出。队列,就是排队的意思,就好比我在排队上公交车,先排队的人在前面,先上车;后排队的人在后面,后上车。
树是一种表达分支或层级关系的数据结构。类似自然界中的树木,从树根开始不断长出枝叶。
图则更像是地图,地图上的公交线路,每个地点连成的各种关系,组成了图这种数据结构。
传统的面向过程的程序设计将程序定义为:数据结构 + 算法。足见数据结构的重要性。这一系列将从数据结构出发,并涉及到一些算法内容。
预告:怎样衡量一个小的程序写得好不好呢,这就要涉及到时间复杂度和空间复杂度了。