如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
数据结构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(llin