2018-07-29--------数据结构汇总

数据结构

1、数据结构的三要素:逻辑结构,存储结构,数据运算

2、逻辑结构:

    1)线性结构:线性表,栈,队列

    2)非线性结构:树,图,集合

3、数据:是信息的载体,是描述客观事物的属性的信息,且能被计算机识别处理的集合。

4、数据元素:是数据的基本单位,其由若干个数据项组成

5、数据项:构成数据元素的不可分割的最小单位

6、数据对象:是具有相同性质的数据元素的集合,是数据的一个子集

7、数据类型:是一个值得集合和定义在此集合上的一组操作的总称

    1)原子类型:不可再分

    2)结构类型:可再分

    3)抽象数据类型:抽象数据类型组织和与之相关的操作

8、数据结构:是互相之间存在一种或多种特定关系关系的数据元素的集合,包含数据逻辑结构,存储结构和数据运算

一个算法的设计取决于逻辑结构,实现则依赖于存储结构

9、数据的逻辑结构:


10、数据的存储结构(物理结构):

是指数据结构在计算机中的表示

    1)顺序存储:把逻辑相邻的元素存储在物理位置也相邻的存储单元中

            优点:随机存储,占用空间最小

            缺点:只能使用相邻的存储单元,容易产生外部碎片

    2)链式存储:不要求存储在物理位置相邻的存储单元,借助指针表示元素之间的逻辑关系

            优点:不会出现碎片现象,充分利用存储单元

            缺点:指针会占用存储位置,且只能顺序存储

    3)索引存储:单独创建一个索引表和存储元素信息分开

            优点:检索速度快

            缺点:索引表占用位置,且对元素修改需要修改对应的索引表项,复杂

    4)散列存储(哈希):根据元素的关键字直接计算出元素的存储位置

            优点:对对应节点的操作快

            缺点:容易出现存储单元冲突的问题

11、数据的运算

    包括数据的运算的定义和实现,定义针对逻辑结构,运算针对存储结构


注:对于栈及类似定义和数据结构,逻辑结构之间的关系

    首先栈是一种数据结构,它对应逻辑结构划分为线性结构,她所拥有的两种存储结构为顺序和链式结构

栈的定义是只允许在一端进行插入或删除操作的线性表,按照定义来看他是一种抽象数据模型,其符合数据结构定义

存储结构其实是对逻辑结构的计算机语言的实现,栈本身只有数据元素和数据操作,但是我们约定的认为栈是能够实现的通过计算机语言,所以他也具备了三要素中的存储结构


12、算法

    是对特定问题求解步骤的描述

包含:有穷性,确定性,可行性,输入,输出

13、算法效率的度量

    1)时间复杂度


时间复杂度计算传送门


  2)空间复杂度

空间复杂度,它是对一个算法在运行过程中临时占用存储空间大小的量度。所以它强调的是使用的辅助空间的的大小,而不是指所有的数据所占用的空间。

算法的空间复杂度的计算公式记作:S(n)=O(f(n)),其中,n为问题的规模,f(n)为语句关于n所占存储空间的函数。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容