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

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

话说我一个测试人员为啥要学算法呢?说白了,都是生活所迫。


现在大厂面试哪个不考点算法,如果想过关,那就得刷题,但是一个小白,直接刷题只会被困难劝退。


所以,索性就学一下算法,不说能学的多深,但是总归不至于抓瞎。


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

数据结构,一定做不好题。


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


一、线性结构


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


线性结构的特点就是:数据元素之间存在着一对一的线性关系。比如说:


有一个数组a = [1, 3, 2, 5, 6],于是a[3] = 5,当数组下标为3的时候,就有一个对应的值是5。


同理,a[1] = 3,也是这样1对1的关系。


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


  • 顺序存储结构:
  • 顺序存储结构的线性表称为顺序表,它的存储元素是连续的(内存地址连续,比如数组)。
  • 链式存储结构:
    链式存储结构的线性表称为链表,它的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息,


比如,单链表、双向链表。因为地址不连续,所以可以利用碎片内存。


二、非线性结构


与线性结构相反,非线性结构就不是1对1的关系了。它包括:二维数组、多维数组、广义表、树结构、图结构。


数组相对来说还算比较简单,但是在应用中,树结构跟图结构算是用的最多的。


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

相关文章
|
27天前
|
存储 C语言
【数据结构】线性表的链式存储结构
【数据结构】线性表的链式存储结构
18 0
|
27天前
|
存储 算法 C语言
【数据结构】线性表的顺序存储结构
【数据结构】线性表的顺序存储结构
16 1
|
6月前
|
存储 算法 调度
线性结构
一、线性结构 线性结构是一种数据结构,其中数据元素按照线性顺序排列。线性结构中的每个元素都有唯一的前驱和后继,除了第一个元素没有前驱,最后一个元素没有后继。常见的线性结构包括数组、链表、栈和队列。 1. 数组:数组是一种线性结构,它由一组连续的内存单元组成,用于存储相同类型的数据元素。数组的元素可以通过索引访问,索引从0开始,每个元素占据一个固定的位置。 2. 链表:链表是一种动态数据结构,它由一系列节点组成,每个节点包含数据和指向下一个节点的指针。链表的节点可以在运行时创建和删除,因此具有更好的灵活性。链表分为单向链表、双向链表和循环链表等不同类型。 3. 栈:栈是一种后进先出(LIFO)的
59 0
|
4月前
|
存储
线性表的概念
线性表的概念
28 2
|
存储 算法 Java
C 线性结构的两种应用——栈和队列 详解
C 数据结构与算法入门——栈和队列 内容分享。
99 0
C 线性结构的两种应用——栈和队列 详解
|
存储 算法
数据结构成神篇2:线性结构
前面我们举过一个一元多项式的例子,我们继续用那个例子来说,前面我们讲的是计算,那我们这节课来讲一讲存储。我们该如何将一个一元多项式的表达式存储到电脑里面呢?
45 0
数据结构成神篇2:线性结构
|
存储
数据结构:线性结构和非线性结构的理解
数据结构:线性结构和非线性结构的理解
227 0
数据结构:线性结构和非线性结构的理解
|
存储
数据结构线性结构
数据结构线性结构
126 0
|
存储 索引
数据结构 线性结构篇——栈和队列(3)
数据结构 线性结构篇——栈和队列
87 0
数据结构 线性结构篇——栈和队列(3)
|
存储 开发工具
数据结构 线性结构篇——栈和队列(1)
数据结构 线性结构篇——栈和队列
88 0
数据结构 线性结构篇——栈和队列(1)