数据结构与算法概述
数据结构与算法的关系
- 数据结构(structure)是一门研究组织数据方式的学科.有了编程语言也就有了数据结构。学好数据结构可以编写出更加漂亮,更加有效率的代码。
- 要学好数据结构就要多考虑生活中遇到的问题,用程序去实现解决。
- 程序=数据结构+算法
- 数据结构是算法的基础,换言之,想要学好算法,需要吧数据结构学到位。
线性结构和非线性结构
一、线性结构:
1、线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系。
2、线性结构拥有两种不同的存储结构,即顺序存储结构和链式存储结构。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的,链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息。
3、线性结构中存在两种操作受限的使用场景,即队列和栈。栈的操作只能在线性表的一端进行,就是我们常说的先进后出(FILO),队列的插入操作在线性表的一端进行而其他操作在线性表的另一端进行,先进先出(FIFO),由于线性结构存在两种存储结构,因 此队列和栈各存在两个实现方式。
4、 常用的线性结构有:线性表,栈,队列,双队列,数组,串。
二、非线性结构:
1、非线性结构中各个数据元素不再保持在一个线性序列中,每个数据元素可能与零个或者多个其他数据元素发生联系。根据关系的不同,可分为层次结构和群结构。
2、常见的非线性结构有:二维数组,多维数组,广义表,树(二叉树等)。