涵盖了三级数据库考试的知识点,希望能帮到大家.
数据结构
1.基本概念
数据是信息的载体,是计算机程序加工的“原料”。数据不仅包括整数、实数、字符串,还包括图像和声音等。
数据元素是数据的基本单位,数据元素也称元素、结点、顶点、记录。一个数据元素可以由若干个数据项(也可以成为字段、域、属性)组成。
数据项是具有独立含义的最小标识单位。
数据结构指的是数据之间的相互关系,即数据的组织形式。
数据结构一般包括数据的逻辑结构、数据的存储结构和数据的运算,这三方面是一个整体,孤立地去理解一个方面,而不注意它们之间的的联系是不可取的。
数据的存储结构可以用顺序、链接、索引和散列存储方法得到。
数据类型是指一个值的集合以及在这些值上定义的一组操作的总称。按“值”是否可分解,可将数据类型划分为两类:原子类型和结构类型。
时间代价就是当问题的规模以某种单位由1增至n时,解决该问题的算法实现运行时所消耗的时间,也以某种单位由f(1)增至f(n),则称该算法的时间代价为f(n)。
空间代价就是当问题的规模以某种单位由1增至n时,解决该问题的算法实现运行时所消耗的空间,也以某种单位由g(1)增至g(n),则称该算法的空间代价为g(n)。 2.线性表
线性表是由n(n>=0)个数据元素(结点)a1,a2,…an组成的有限序列。 带头结点的单循环链表中,判断空链表的条件是head==head->next.
仅设尾指针的单循环链表中,判断空链表的条件为rear==rear->next.
双向链表既可以用来表示线性结构,也可以用来表示非线性结构,其每个结点包括三个域:一个数据域和两个指针域,一个指向它的前趋,另一个指向它的后继。在双向链表中,若d是指向表中任一结点的指针,则有llink(rlink(d))=rlink(llink(d))=d.
队列在两个方向都有限制,插入只能在表的一端进行(只入不出),而删除只能在表的另一端进行(只出不进),允许插入的一端称队尾(rear),允许删除的一端称队头(front),队列的操作原则是先进先出。
栈是一种插入、删除只能在表的一端进行的线性表。在栈中,允许插入和删除的一端叫栈顶,不允许插入和删除的一端叫栈底。满足后进先出的原则。
串(字符串)是一种特殊的线性表,它的字符序列由零个或多个字符组成。a=’’称为空串,长度为0.求子串序列号:用index(a,sb)表示子串sb在串a中的序号。 3.多维数组、稀疏矩阵和广义表
数组是由类型相同的数据元素构成的有序集合。行优先:先行后列,先存储行号较小的元素,行号相同者先存储列号较小的元素。计算二维数组的地址:Loc(i,j)=Loc(0,0)+(行标*i+j)*L 稀疏矩阵可用一个三元组(i,j,value)表示,将这些三元组按某种次序排成一个线性表。 4.树形结构
树是一类非线性结构。树的表现形式还有嵌套集合的形式、广义表的形式和凹入表示法的形式。树的结点包含一个数据元素及若干指向其子树的分支。结点拥有的子树数称为结点的度。 度为0的结点称为叶子或终端结点,度不为0的结点称为非终端结点或分支结点。树内各结