【小白学算法】1. 什么是线性结构与非线性结构

话说我一个测试人员为啥要学算法呢?说白了,都是生活所迫。
现在大厂面试哪个不考点算法,如果想过关,那就得刷题,但是一个小白,直接刷题只会被困难劝退。
所以,索性就学一下算法,不说能学的多深,但是总归不至于抓瞎。

言归正传,都知道数据结构是算法的基础。也就是说,虽然你学好数据结构不一定就能做好题,但是你学不好
数据结构,一定做不好题。

数据结构可以分为2大类:线性结构与非线性结构

一、线性结构

线性结构是最常用的数据结构,而其常见的形式有:数组、队列、链表和栈。

线性结构的特点就是:数据元素之间存在着一对一的线性关系。比如说:
有一个数组a = [1, 3, 2, 5, 6],于是a[3] = 5,当数组下标为3的时候,就有一个对应的值是5。
同理,a[1] = 3,也是这样1对1的关系。

而在线性结构中,又存在2种不同的存储结构:顺序存储结构、链式存储结构

  • 顺序存储结构:
    顺序存储结构的线性表称为顺序表,它的存储元素是连续的(内存地址连续,比如数组)。

  • 链式存储结构:
    链式存储结构的线性表称为链表,它的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息,
    比如,单链表、双向链表。因为地址不连续,所以可以利用碎片内存。

二、非线性结构

与线性结构相反,非线性结构就不是1对1的关系了。它包括:二维数组、多维数组、广义表、树结构、图结构。
数组相对来说还算比较简单,但是在应用中,树结构跟图结构算是用的最多的。

单从树结构与图结构,就可以延伸出很多算法。

posted @ 2021-03-09 00:42  把苹果咬哭的测试笔记  阅读(1396)  评论(3编辑  收藏  举报