浙江省计算机三级数据库知识点(数据结构).docxVIP

浙江省计算机三级数据库知识点(数据结构).docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浙江省计算机三级数据库知识点(数据结构)

数据结构1.基本概念数据是信息的载体,是对客观事物的符号表示,是计算机程序加工的“原料”。数据不仅包括整数、实数、字符串,还包括图像和声音等。数据元素是组成数据的基本单位,在计算机程序里往往作为一个整体进行考虑和处理,数据元素也称元素、结点、顶点、记录。一个数据元素可以由若干个数据项(也可以成为字段、域、属性)组成。数据项是具有独立含义的最小标识单位,是数据元素的基本组成部分,不可再分的数据单元。举例:一个学生的基本信息数据作为数据元素,而描述学生信息的学号、姓名、性别、班级等为数据项。数据结构指的是数据之间的相互关系,即数据的组织形式。数据结构一般包括数据的逻辑结构、数据的存储结构和数据的运算(操作集合),这三方面是一个整体,孤立地去理解一个方面,而不注意它们之间的的联系是不可取的。逻辑结构是数据间的逻辑关系。基本结构有集合、线性结构、树形结构、图状结构(网状结构)。包括两大类:线性结构(线性表,队列,栈,字符串,数组,广义表);非线性结构(树和图)。存储结构可以用顺序、链接、索引和散列存储方法得到。数据类型是指一个值的集合以及在这些值上定义的一组操作的总称。按“值”是否可分解,可将数据类型划分为两类:原子类型(不可再分)和结构类型(可以再次分解)。时间代价(时间效率)就是当问题的规模以某种单位由1增至n时,解决该问题的算法实现运行时所消耗的时间,也以某种单位由f(1)增至f(n),则称该算法的时间代价为f(n)。指标为时间复杂度。空间代价(空间效率)就是当问题的规模以某种单位由1增至n时,解决该问题的算法实现运行时所消耗的空间,也以某种单位由g(1)增至g(n),则称该算法的空间代价为g(n)。度量为空间复杂度。2.线性表:最简单、最基础的数据结构,数据元素之间是一对一的关系均匀性:一表元素属于同一集合,相同的数据类型;有序性:相邻元素存在序偶关系;有限性:元素个数有限,为表长。线性表是由n(n=0)个数据元素(结点)a1,a2,…an组成的有限序列。n为数据元素个数,即表的长度。元素的线性逻辑关系:有且只有一个开始结点(表头结点a1);有且只有一个终端结点(表尾结点an)。每个结点只有一个前驱结点(除表头)和一个后继结点(除表尾)。基本存储结构:顺序存储结构和链式存储结构。顺序表:将数据元素按其逻辑顺序依次存放在内存中一组地址连续的存储单元中,依次相邻。特点是:在线性表中逻辑关系相邻的数据元素在计算机内存物理位置也相邻。插入:在具有n个元素的线性表第i个元素之前插入一个新元素,必须把从n到第i个之间的元素依次往后移动一个位置,空出第i个位置放新元素,表长变为n+1。删除:从具有n个元素的线性表中删除第i个元素,就必须把从第i+1个到第n个之间的元素依次往前移动一个位置,以覆盖前一个位置上的内容,表长变为n-1。**顺序表插入和删除操作的时间复杂度均为O(n)。优点是表中元素可通过下标进行直接访问,查询效率高(存储密度为100%);缺点是插入、删除操作不方便,需要移动元素。为静态分布必须事先估计表长,过大或者过小可能造成存储空间浪费或出现溢出。适合一旦建立长度将很少改变的应用。链式存储结构有线性链表、循环链表、双向链表。可动态存储也可静态存储。线性链表:每个元素的存储单位称为结点,至少包括两个域:存储元素信息的数据域和存储其后继元素存储位置的指针域。表中元素之间的逻辑关系通过结点指针体现,存储位置不要求相邻。存储密度小于1,无需事先估计存储空间。线性链表是动态地进行存储分配的一种结构,可以根据需要开辟内存单元。包含了申请、使用、释放内存空间三个步骤,实现存储空间的动态分配。插入算法的关键是要找到插入的位置,并且标记所插入位置的前驱结点,很明显这样比较次数为i-1次;其次是修改指针的次序:先执行new→next=p→next后,执行p→next=new。删除算法步骤:根据给定的参数从头结点出发找到要删除的结点的前驱~修改指针从链表中删除指定结点,即p→next=p→next→next~释放被删除结点的存储空间。循环链表与单向链表一样,也是链式存储结构,不同的是,循环链表的最后一个结点的指针是指向该循环链表的第一个结点或者表头结点,从而构成一个环形的链。带头结点的单循环链表中,判断空链表的条件是head==head-next.仅设尾指针的单循环链表中,判断空链表的条件为rear==rear-next.双向链表既可以用来表示线性结构,也可以用来表示非线性结构,其每个结点包括三个域:一个数据域和两个指针域,一个指向它的前趋,另一个指向它的后继。在双向链表中,若d是指向表中任一结点的指针,则有llink(rlink(d))=rlink(llink(d))=d.表示当前结点的后继结点的前驱是自身,当前结点前驱结点的后继结点也是自身。3

文档评论(0)

2017ll + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档