数据结构知识点总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构知识点总结
绪论
时间复杂度T(n)=O(f(n))
通常用:常量阶O(1)线性阶O(n)平方阶O(n^2)对数阶O(logn)指数阶O(2^n)计算的复杂性:算法的计算量的大小
算法的时间复杂度取决于问题的规模和待处理数据的初态。
算法:是对特定问题求解步骤的一种描述,它是指令的有限序列。
(1)有穷性(2)确定性(3)可行性(4)输入(5)输出
从逻辑上可以把数据结构分为线性结构和非线性结构
栈与数据的存储结构无关
串是线性结构
有序表属于逻辑结构
连续存储设计时,存储单元的地址一定连续
一、数据:是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。它是计算机程序加工的“原料”。
二、数据元素:是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。一个数据元素可由若干个数据项组成。数据项是数据的不可分割的最小单位。
三、数据对象:是性质相同的数据元素的集合,是数据的一个子集。
四、数据机构:是相互之间存在一种或多种特定关系的数据元素的集合。在任何问题中,数据元素都不是孤立存在的,而是在它们之间存在着某种关系,这种数据元素相互之间的关系称为结构。根据数据元素之间关系的不同特性,通常有下
列4类基本结构:(1)集合------------数据元素仅有同属一个关系的关系(2)线性结构----------结构中数据元素之间存在一个对一个的关系(3)树形结构------------结构中的数据元素之间存在一个对多个的关系(4)图状结构或网状结构-----------结构中的数据元素之间存在多个对多个的关系
五、元素在存贮结构(1)物理结构(存储结构):它包括数据元素的表示和关系。(2)逻辑结构
六、位bit:在计算机中表示信息的最小单位是二进制的一位
七、元素element/节点node:位串
八、数据域:当数据元素由若干数据项组成时,位串中对应于各个数据项的子位串
九、数据元素之间的关系在计算机中有两种不同的表示方法,顺序映像和非顺序映像,并由此得到两种不同的存储结构:顺序存储结构(借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系)和链式存储结构(借助指示元素存储地址的指针表示数据元素之间的逻辑关系)。
算法:是对特定问题求解步骤的一种描述,它是指令的有限序列。
(1)有穷性(2)确定性(3)可行性(4)输入(5)输出
算法设计要求:(1)正确性(2)可读性(3)健壮性(4)效率与低存储量需求
------------------------------------------------------------------------------- 线性表:采用顺序存储,便于进行插入和删除的操作
顺序表的优点:结构紧凑,存储空间利用率高,操作简单。(存储密度大)缺点:它需要一块连续的存贮空间。
当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应采用顺序存储结构。
若某线性表最常用的操作是存取任一指定序号的元素和最后进行插入和删除运算,则利用顺序表的存储方式最节省时间;若某线性表最常用的操作是在最后一个元素之后插入一个元素和删除一个元素,则采用仅有尾指针的单循环链表的存储方式最节省时间。设一个链表最常用的操作是在末尾插入结点或删除尾结点,则利用带头结点的双循环链表的存储方式最节省时间。若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则利用带头结点的双循环链表的存储方式最节省时间。
链表的优点:在空间的合理利用上和插入、删除时不需要移动,是线性表的首选存储结构。(不必事先估计存储空间、所需空间与线性长度成正比)缺点:求线性表的长度时不如顺序存储结构(不可随机访问任一元素)线性表在顺序存储时,查找第i个元素的时间同i的值无关;线性表在链式存储时,查找第i个元素的时间同i的值成正比。
对于顺序存储的线性表,访问结点的时间复杂度为O(1),插入和删除结点的时间复杂度为O(n)。
对于链式存储的线性表,访问第i个元素的时间复杂度为O(n)。
对于一个具有n个结点的单链表,在已知的结点*p后插入一个新结点的时间复杂度为O(1),在给定值为x的结点后插入一个新结点的时间复杂度为O(n)
根据线性表的链式存储结构中每一个结点包含的指针个数,将线性链表分为单链表和多重链表;根据指针的连接方式,链表又可分为动态链表和静态链表。
链表的头结点的作用:1.标识作用2.使操作统一3.其数据域可写入链表长度,
或作监视哨。
静态链表中指针表示的是下一个元素地址
静态链表能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。
静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。
线性表是线性结构的基本形式
线性表的逻辑结构
线性表的定义
线性结构的特点是数据元素之间是一种线性关系,数据元素“一个接一个的排列”。
线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列,记为:(a1,a2,…a i-1,a i,a i+1,…a n);
其中:n为表长,n=0 时称为空表。
表中相邻元素之间存在顺序关系:
a i-1称为a i的直接前趋,a i+1称为a i的直接后继。
a1,…a n-1有且仅有一个直接后继;(非空线性表)
a2,…a n有且仅有一个直接前趋。(非空线性表)
线性表的顺序存储是指在内存中用地址连续的一块存储空间顺序存放线性表的各元素,用这种存储形式存储的线性表称其为顺序表。
存储的特点:物理上的相邻实现了逻辑相邻的表示。
顺序存储能随机访问第i个元素: