数据结构
什么是数据
程序设计的实质是对确定问题,选择一种好的结构,加上设计一种好的算法。程序设计 = 数据结构 + 算法什么是数据:数据是描述客观事物的符号数据 = 符号1、可以输入到计算机中2、可以被计算机识别所处理数据:数据元素:数据的基本单位,也称为结点或者是记录数据对象:相同特性的数据元素的集合,是数据的一个子集数据项:独立含义的数据的最小单位数据的目的是存储,存储的目的是:后期的再利用 const a = [1,2,3,4]; const Salary = 100; const Student = ['张三','李四','王五'];我们要选取一种好的方式来存储数据。简单的数据,我们可以用变量或者是数组对数据进行存储如果有一个复杂的数据: 无法从数组里去体现数据之间的逻辑关系,后期无法再利用如何存储具有复杂关系的数据更有助于后期对数据的再利用数据结构的主要作用是:阐述关系结构:简单理解就是关系,不同的数据元素之间不是独立的,而是存在特定关系的。逻辑结构:数据对象中数据元素之间的互相关系四种:集合结构、线性结构、树形结构、图形结构物理结构:数据元素存储到计算机中的存储器。内存而言两种:顺序存储、链式存储数据的存储结构应该正确反应数据元素之间的逻辑关系对象是暴露行为,数据结构是暴露数据JS的数组不是真正意义上的数组数组:在内存中用一串连续的区域来存放一些值,数组是相同类型数据元素的有序集合。数组是由相同类型的元素的集合组成的数据结构。连续内存JS的数组元素可以是任意类型,JS中的内存地址是不连续的数组的有点: 1、按照索引查询元素的时候速度很快 2、存储大量的数据 3、按照索引去遍历数组 4、定义方便,访问很灵活数组的缺点: 1、根据内容查找会很慢 2、数组的大小一经确定不能改变的,不适合动态存储 3、数组只能存储相同类型的数据 4、增加、删除元素的效率慢
集合结构
集合结构:数据元素同属于一个集合,他们之间没有其他的关系。他们的共同属性是:“同属于一个集合”。
线性结构
线性结构:最典型的数据关系是一对一,线性结构是一种有序数据的集合。行因素。除了第一个和最后一个数据元素之外,其他数据元素都是首尾相接的。特点:1、必存在一个第一个元素2、必存在最后的一个元素3、除最后一个元素外,其他的数据元素均有一个唯一的“后续”。4、除第一个元素之外,其他数据元素均有一个唯一的前驱。数组就是一个线性结构,栈,队列,链表
树形结构
典型的树形结构:DOM树
图形结构
典型的图形结构:导航
顺序存储
链式存储结构
常见的数据结构
