数据结构

一、基础概念

问题:什么是数据结构?有什么用?

我的理解:首先,所谓的程序就是一系列计算机指令的集合,它的目的是为了实现某个特定的功能或解决特定的问题。算法是程序功能的具体实现方式,有了算法,就有了解决问题的思路和方式。另一方面,所有程序或者算法的处理对象都是数据,当我们的程序要处理的是某一类常见的问题时,往往这时候的数据都有一些典型的特点,因此数据结构就是为了更好地存储、处理某一类模型中的数据创建出来的特定结构,简单举例说明,银行流水排号的时候要求先领到号先处理,也就是先进先出,这就是队列的数据结构擅长的地方。

数据结构就是为了更好的存储和处理特定类型的数据而出现的特定结构

再通俗一点地讲:

有一个事情:到菜果市场买菜和水果

算法:

1. 拿钱
2、拿装蔬菜和水果的篮子
3、确定菜果市场的位置
4、出发到达菜果市场
5、跟小贩讨价还价
6、买到之后回家

数据结构:

蔬菜  放在  菜篮子
水果  放在  果篮子

上面的例子中,数据就是你买到的水果和蔬菜,而用来盛的就是数据结构,因为蔬菜和水果不一样,所以才有了适合放蔬菜的菜篮子和适合放水果的果篮子,菜篮子中菜容易放容易取,还可以排整齐来节约空间,就是因为它适合放菜,数据结构正是这个道理。

分类:

  • 集合

  • 线性结构

  • 树形结构

  • 图状结构或网状结构

二、线性表

线性表在python当然不需要自己去实现,使用list及内置的方法完全可以实现绝大部分功能,但是重要不是工具,而是人。工具的简化可以我们提高效率,但是对于细节也会更多的忽略。在学习线性表的时候,不要太注重有没有实现什么,而是去观察一个线性表应有的操作和功能,更好地去理解什么是一个线性表。

不要想自己能做什么,多想一下自己脑袋里面有什么

一、顺序实现

操作类型

1、InitList函数:初始化线性表

2、DestroyList函数:删除线性表

3、ClearList函数:清空线性表

4、ListEmpty函数:判断线性表是否为空

5、ListLength函数:线性表的长度

6、GetElem函数:获取线性表中某个位置的值

7、PriorElem函数:

二、链式实现

Last updated

Was this helpful?