自考问答 自考本科自考百科
自考问答 > 自考百科 > 数据结构和自学考试

数据结构和自学考试

发布时间:

数据结构和自学考试

发布时间:

数据结构和自学考试

计算机及应用自考本科考什么科目? 英语(二)、高等数学(工本)、概率论与数理统计(二)、离散数学、计算机系统结构、操作系统、操作系统(实践)、数据结构、软件工程、软件工程(实践)、中国近现代史纲要、马克思主义基本原理概论、数据结构(实践)、数据库系统原理、数据库系统原理(实践)、C++程序设计、C++程序设计(实践)、计算机网络原理、Java语言程序设计(一)、Java语言程序设计(一)(实践)、毕业论文。 自考计算机及应用专业就业前景 伴随着互联网的发展,IT人才的短缺现象将会越来越严重。在我国,网络存储人才、电子商务人才、信息安全人才、游戏技术人才严重短缺;在软件人才层次结构上,水平高的系统分析员和有行业背景的项目策划人员偏少,同时软件蓝领也比较缺乏。计算机及应用专业的人才在当今社会具有极高的发展前景和就业空间。 自考计算机及应用专业复习经验分享: 掌握学习方法 每门课的学习方法都有区别,但有些方法是相通的。具体来说要注意以下这些问题:1、认真将往年的试卷做一遍,从中发现自己的不足之处;2、复习要针对考试大纲进行,做到有的放矢;3、选择一套好的参考书对你的学习会很有帮助。 学习时间安排 自考过程的时间长短与很多因素有关,比如客观的学习时间多少、个人的知识基础、学习方法、智力水平等等。例如有许多在职考生每次只考两门,因为在职自考不同于在全职学习,精力和时间都非常有限,每次只考两门,学习压力要小得多。另外,自考本科毕业前需要已经有一张国家承认的专科文凭,因此有人就采用了这样的方法:读一个电大专科,同时报考自考本科,这样一个高中起点的考生只要3~5年左右的时间就可以拿到自考本科文凭。 注意课程顺序 在报考课程时,要注意自己的学习和考试顺序。如果你学的是计算机应用本科,除去基础科目之外,首先应该学习的就是《高等数学(工本)》、《离散数学》和《物理(工)》,之后再学习《概率论与数理统计(二)》、《数据结构》和《计算机系统结构》。 和专科段一样,《数据结构》也是本科段重要的专业基础课,《数据结构》学得不扎实会直接影响到其他课程的上机实习和毕业设计。因此学习它之前先修完《离散数学》。学完《数据结构》后,可学习《操作系统》、《面向对象程序设计》和《数据库原理》。《计算机网络与通信》、《软件工程》和《工程经济》可以放在学习的后阶段进行,其中《工程经济》应在《软件工程》之后,或与《软件工程》同时学。自考/成考有疑问、不知道如何总结自考/成考考点内容、不清楚自考/成考报名当地政策,点击底部咨询官网,免费领取复习资料:

第十章 数据结构程序设计示例 本章通过具体的实例介绍了数据结构的实验过程 包括对问题的分析 数据结构的确定与建立 算法的设计与实现 程序的编制与调试 实验报告的编制等 本章特别强调了程序的规范说明和建立数据结构模型所用的抽象数据类型 考核知识点( ) 基本概念: 抽象数据类型 程序规范说明 问题描述 需求分析 概要设计 详细设计 调试 静态调试 动态调试 测试 测试数据 使用说明书等 ( ) 抽象数据类型的表示与实现 ( ) 从问题到程序的求解(数据结构模型的建立 算法设计 抽象数据类型的实现 程序代码的编制 静态调试和动态调试) ( ) 含并 交和差运算的集合类型的实验(问题描述 需求分析 概要设计 详细设计 调试分析 使用说明 测试结果 附录) ( ) 最佳任务分配方案求解的实验(问题描述 需求分析 概要设计 详细设计 调试分析 使用说明 测试结果 附录) ( ) 排队问题的系统仿真的实验(问题描述 需求分析 概要设计 详细设计 调试分析 使用说明 测试结果 附录) ( ) 十进制四则运算计算器的实验(问题描述 需求分析 概要设计 详细设计 调试分析 使用说明 测试结果 附录) ( ) 自行车零部件库的库存模型的实验(问题描述 需求分析 概要设计 详细设计 调试分析 使用说明 测试结果 附录) ( ) 教务课程计划的辅助制定的实验(问题描述 需求分析 概要设计 详细设计 调试分析 使用说明 测试结果 附录) ( )一个小型全文检索模型的实验(问题描述 需求分析 概要设计 详细设计 调试分析 使用说明 测试结果 附录) ( )汽车牌照的快速查找的实验(问题描述 需求分析 概要设计 详细设计 调试分析 使用说明 测试结果 附录) 自学要求( )熟悉从问题分析到程序调试全过程中所遇到的关的概念 ( )掌握抽象数据类型及其实现方法 ( )掌握问题到程序的求解过程 ( )掌握程序规范说明 ( )理解八个数据结构应用实例 ( )了解程序的调试技术 ( )了解测试数据和测试数据的选取原则 考核目标( )识记数据结构实验过程中所遇到的各种概念和术语 ( )理解数据结构实验过程中的各种文档格式和各环节的内容 ( )理解八个实例所代表的数据结构的内涵 ( )掌握在实际问题求解中对问题的描述和抽象 数据结构的选择和表示 算法的设计 程序的编码和调试 文档的书写等过程 三 有关说明与实施要求

自学考试数据结构

02142自考数据结构导论今天我们的教务老师给同学来讲讲以下这些问题,如果你觉得还不错,可以收藏我们网站哦,我们专注于自学考试教材购买服务网哦,接下来一起来阅读下面的正文吧!一、什么是02142自考数据结构导论02142自考数据结构导论是一门数据结构课程,是针对自学考试(自考)考生设计的一门课程,是由中国自学考试网络中心制定的一门数据结构课程,课程编号为02142。该课程旨在帮助学生掌握数据结构的基础理论,并能够应用数据结构解决实际问题。二、02142自考数据结构导论的主要内容02142自考数据结构导论的主要内容包括:数据结构的概念与分类、线性表、栈与队列、树与二叉树、图、查找与排序、哈希表、字符串匹配算法等。三、02142自考数据结构导论的学习要求02142自考数据结构导论的学习要求主要是要求学生掌握数据结构的基本概念、基本原理和基本算法,能够熟练掌握数据结构中的常见算法,并能够运用数据结构解决实际问题。四、02142自考数据结构导论的考试形式02142自考数据结构导论的考试形式主要是采用闭卷考试的形式,考试内容主要包括理论知识和实际应用,考试时间为90分钟,满分100分。五、02142自考数据结构导论的学习方法02142自考数据结构导论的学习方法主要有以下几点:1、充分理解数据结构的基本概念、基本原理和基本算法;2、熟练掌握数据结构中的常见算法;3、多练习,熟练掌握数据结构的应用;4、注意把握考试的重点,掌握考试的规律。六、02142自考数据结构导论的重要性02142自考数据结构导论是一门重要的课程,它不仅可以帮助学生掌握数据结构的基本概念、基本原理和基本算法,而且还可以帮助学生掌握数据结构中的常见算法,并能够运用数据结构解决实际问题,这对于学生的今后学习和工作具有重要的意义。自考/成考有疑问、不知道自考/成考考点内容、不清楚当地自考/成考政策,点击底部咨询官网老师,免费领取复习资料:

第六章 树 树是n个结点的有限集合,非空时必须满足:只有一个称为根的结点;其余结点形成m个不相交的子集,并称根的子树。 根是开始结点;结点的子树数称度;度为0的结点称叶子(终端结点);度不为0的结点称分支结点(非终端结点);除根外的分支结点称内部结点; 有序树是子树有左,右之分的树;无序树是子树没有左,右之分的树;森林是m个互不相交的树的集合; 树的四种不同表示方法:·树形表示法;·嵌套集合表示法;·凹入表示法·广义表表示法。 二叉树的定义:是n≥0个结点的有限集,它是空集(n=0)或由一个根结点及两棵互不相交的分别称作这个根的左子树和右子树的二叉树组成。 二叉树不是树的特殊情形,与度数为2的有序树不同。 二叉树的4个重要性质: ·。二叉树上第i层上的结点数目最多为2^(i-1)(i≥1)。; ·深度为k的二叉树至多有(2^k)-1个结点(k≥1); ·。在任意一棵二叉树中,若终端结点的个数为n0,度为2的结点数为n2,则n0=n2+1; ·。具有n个结点的完全二叉树的深度为int(log2n)+1. 满二叉树是一棵深度为k,结点数为(2^k)-1的二叉树;完全二叉树是满二叉树在最下层自右向左去处部分结点; 二叉树的顺序存储结构就是把二叉树的所有结点按照层次顺序存储到连续的存储单元中。(存储前先将其画成完全二叉树) 树的存储结构多用的是链式存储。BinTNode的结构为lchild|data|rchild,把所有BinTNode类型的结点,加上一个指向根结点的BinTree型头指针就构成了二叉树的链式存储结构,称为二叉链表。它就是由根指针root确定的。共有2n个指针域,n+1个空指针。 根据访问结点的次序不同可得三种遍历:先序遍历(前序遍历或先根遍历),中序遍历(或中根遍历)、后序遍历(或后根遍历)。时间复杂度为O(n)。 利用二叉链表中的n+1个空指针域来存放指向某种遍历次序下的前趋结点和后继结点的指针,这些附加的指针就称为“线索”,加上线索的二叉链表就称为线索链表。线索使得查找中序前趋和中序后继变得简单有效,但对于查找指定结点的前序前趋和后序后继并没有什么作用。 树和森林及二叉树的转换是对应的。 转换方法: ·树变二叉树:兄弟相连,保留长子的连线。 ·二叉树变树:结点的右孩子与其双亲连。 ·森林变二叉树:树变二叉树,各个树的根相连。 树的存储结构:·有双亲链表表示法:结点data | parent,对于求指定结点的双亲或祖先十分方便,但不适于求指定结点的孩子及后代。 ·孩子链表表示法:为树中每个结点data | next设置一个孩子链表firstchild,并将data | firstchild存放在一个向量中。 ·双亲孩子链表表示法:将双亲链表和孩子链表结合。 ·孩子兄弟链表表示法:结点结构leftmostchild |data | rightsibing,附加两个分别指向该结点的最左孩子和右邻兄弟的指针域。 树的前序遍历与相对应的二叉树的前序遍历一致;树的后序遍历与相对应的二叉树的中序遍历一致。 树的带权路径长度是树中所有叶结点的带权路径长度之和。树的带权路径长度最小的二叉树就称为二叉树(即哈夫曼树)。 在叶子的权值相同的二叉树中,完全二叉树的路径长度最短。 哈夫曼树有n个叶结点,共有2n-1个结点,没有度为1的结点,这类树又称为严格二叉树。 变长编码技术可以使频度高的字符编码短,而频度低的字符编码长,但是变长编码可能使解码产生二义性。如00、01、0001这三个码无法在解码时确定是哪一个,所以要求在字符编码时任一字符的编码都不是其他字符编码的前缀,这种码称为前缀码(其实是非前缀码)。 哈夫曼树的应用最广泛地是在编码技术上,它能够容易地求出给定字符集及其概率分布的前缀码。哈夫曼编码的构造很容易,只要画好了哈夫曼树,按分支情况在左路径上写代码0,右路径上写代码1,然后从上到下到叶结点的相应路径上的代码的序列就是该结点的前缀码。 第七章 图 图的逻辑结构特征就是其结点(顶点)的前趋和后继的个数都是没有限制的,即任意两个结点之间之间都可能相关。 图GraphG=(V,E),V是顶点的有穷非空集合,E是顶点偶对的有穷集。 有向图Digraph:每条边有方向;无向图Undigraph:每条边没有方向。 有向完全图:具有n*(n-1)条边的有向图;无向完全图:具有n*(n-1)/2条边的无向图; 有根图:有一个顶点有路径到达其它顶点的有向图;简单路径:是经过顶点不同的路径;简单回路是开始和终端重合的简单路径; 网络:是带权的图。 图的存储结构: ·邻接矩阵表示法:用一个n阶方阵来表示图的结构是的,适合稠密图。 ·无向图:邻接矩阵是对称的。 ·有向图:行是出度,列是入度。 建立邻接矩阵算法的时间是O(n+n^2+e),其时间复杂度为O(n^2) ·邻接表表示法:用顶点表和邻接表构成不是的,适合稀疏图。·顶点表结构 vertex | firstedge,指针域存放邻接表头指针。 ·邻接表:用头指针确定。 ·无向图称边表; ·有向图又分出边表和逆邻接表; ·邻接表结点结构为 adjvex | next, 时间复杂度为O(n+e)。,空间复杂度为O(n+e)。。 图的遍历: ·深度优先遍历:借助于邻接矩阵的列。使用栈保存已访问结点。 ·广度优先遍历:借助于邻接矩阵的行。使用队列保存已访问结点。 生成树的定义:若从图的某个顶点出发,可以系统地访问到图中所有顶点,则遍历时经过的边和图的所有顶点所构成的子图称作该图的生成树。 最小生成树:图的生成树不,从不同的顶点出发可得到不同的生成树,把权值最小的生成树称为最小生成树(MST)。 构造最小生成树的算法: ·Prim算法的时间复杂度为O(n^2)与边数无关适于稠密图。 ·Kruskal算法的时间复杂度为O(lge),主要取决于边数,较适合于稀疏图。 最短路径的算法:·Dijkstra算法,时间复杂度为O(n^2)。·类似于prim算法。 拓扑排序:是将有向无环图G中所有顶点排成一个线性序列,若 ∈E(G),则在线性序列u在v之前,这种线性序列称为拓扑序列。 拓扑排序也有两种方法:·无前趋的顶点优先,每次输出一个无前趋的结点并删去此结点及其出边,最后得到的序列即拓扑序列。 ·无后继的结点优先:每次输出一个无后继的结点并删去此结点及其入边,最后得到的序列是逆拓扑序列。 第八章 排序 记录中可用某一项来标识一个记录,则称为关键字项,该数据项的值称为关键字。 排序是使文件中的记录按关键字递增(或递减)次序排列起来。 ·基本操作:比较关键字大小;改变指向记录的指针或移动记录。 ·存储结构:顺序结构、链表结构、索引结构。 经过排序后这些具有相同关键字的记录之间的相对次序保持不变,则称这种排序方法是稳定的,否则排序算法是不稳定的。 排序过程中不涉及数据的内、外存交换则称之为“内部排序”(内排序),反之,若存在数据的内外存交换,则称之为外排序。 内部排序方法可分五类:插入排序、选择排序、交换排序、归并排序和分配排序。 评价排序算法好坏的标准主要有两条:执行时间和所需的辅助空间,另外算法的复杂程序也是要考虑的一个因素。 插入排序:·直接插入排序: ·逐个向前插入到合适位置。 ·哨兵(监视哨)有两个作用: ·作为临变量存放R[i] ·是在查找循环中用来监视下标变量j是否越界。 ·直接插入排序是就地的稳定排序。时间复杂度为O(n^2),比较次数为(n+2)(n-1)/2;移动次数为(n+4)(n-1)/2; ·希尔排序: ·等间隔的数据比较并按要求顺序排列,最后间隔为1. ·希尔排序是就地的不稳定排序。时间复杂度为O(n^1.25),比较次数为(n^1.25);移动次数为(1.6n^1.25); 交换排序:·冒泡排序:·自下向上确定最轻的一个。·自上向下确定最重的一个。·自下向上确定最轻的一个,后自上向下确定最重的一个。 ·冒泡排序是就地的稳定排序。时间复杂度为O(n^2),比较次数为n(n-1)/2;移动次数为3n(n-1)/2; ·快速排序:·以第一个元素为参考基准,设定、动两个指针,发生交换后指针交换位置,直到指针重合。重复直到排序完成。 ·快速排序是非就地的不稳定排序。时间复杂度为O(nlog2n),比较次数为n(n-1)/2; 选择排序:·直接选择排序: ·选择最小的放在比较区前。 ·直接选择排序就地的不稳定排序。时间复杂度为O(n^2)。比较次数为n(n-1)/2; ·堆排序 ·建堆:按层次将数据填入完全二叉树,从int(n/2)处向前逐个调整位置。 ·然后将树根与最后一个叶子交换值并断开与树的连接并重建堆,直到全断开。 ·堆排序是就地不稳定的排序,时间复杂度为O(nlog2n),不适宜于记录数较少的文件。 归并排序: ·先两个一组排序,形成(n+1)/2组,再将两组并一组,直到剩下一组为止。 ·归并排序是非就地稳定排序,时间复杂度是O(nlog2n), 分配排序:·箱排序: ·按关键字的取值范围确定箱子数,按关键字投入箱子,链接所有非空箱。 ·箱排序的平均时间复杂度是线性的O(n)。 ·基数排序:·从低位到高位依次对关键字进行箱排序。 ·基数排序是非就稳定的排序,时间复杂度是O(d*n+d*rd)。 各种排序方法的比较和选择: ·。待排序的记录数目n;n较大的要用时间复杂度为O(nlog2n)的排序方法; ·记录的大小(规模);记录大用链表作为存储结构,而快速排序和堆排序在链表上难于实现; ·关键字的结构及其初始状态; ·对稳定性的要求; ·语言工具的条件; ·存储结构; ·时间和辅助空间复杂度。 第九章 查找 查找的同时对表做修改操作(如插入或删除)则相应的表称之为动态查找表,否则称之为静态查找表。 衡量查找算法效率优劣的标准是在查找过程中对关键字需要执行的平均比较次数(即平均查找长度ASL)。 线性表查找的方法: ·顺序查找:逐个查找,ASL=(n+1)/2; ·二分查找:取中点int(n/2)比较,若小就比左区间,大就比右区间。用二叉判定树表示。ASL=(∑(每层结点数*层数))/N. ·分块查找。要求“分块有序”,将表分成若干块内部不一定有序,并抽取各块中的关键字及其位置建立有序索引表。 二叉排序树(BST)定义是:二叉排序树是空树或者满足如下性质的二叉树: ·若它的左子树非空,则左子树上所有结点的值均小于根结点的值; ·若它的右子树非空,则右子树上所有结点的值均大于根结点的值; ·左、右子树本身又是一棵二叉排序树。 二叉排序树的插入、建立、删除的算法平均时间性能是O(nlog2n)。 二叉排序树的删除操作可分三种情况进行处理: ·*P是叶子,则直接删除*P,即将*P的双亲*parent中指向*P的指针域置空即可。 ·*P只有一个孩子*child,此时只需将*child和*p的双亲直接连接就可删去*p. ·*p有两个孩子,则先将*p结点的中序后继结点的数据到*p,删除中序后继结点。 关于B-树(多路平衡查找树)。它适合在磁盘等直接存取设备上组织动态的查找表,是一种外查找算法。建立的方式是从下向上拱起。 散列技术:将结点按其关键字的散列地址存储到散列表的过程称为散列。散列函数的选择有两条标准:简单和均匀。 常见的散列函数构的造方法: ·。平方取中法:hash=int((x^2)%100) ·。除余法:表长为m,hash=x%m ·。相乘取整法:hash=int(m*(x*A-int(x*A));A=0.618 ·。随机数法:hash=random(x)。 处理冲突的方法:·开放定址法: ·一般形式为hi=(h(key)+di)%m1≤i≤m-1,开放定址法要求散列表的装填因子α≤1. ·开放定址法类型: ·线性探查法:address=(hash(x)+i)%m; ·二次探查法:address=(hash(x)+i^2)%m; ·双重散列法:address=(hash(x)+i*hash(y))%m; ·拉链法: ·是将所有关键字为同义词的结点链接在同一个单链表中。 ·拉链法的优点: ·拉链法处理冲突简单,且无堆积现象; ·链表上的结点空间是动态申请的适于无法确定表长的情况; ·拉链法中α可以大于1,结点较大时其指针域可忽略,因此节省空间; ·拉链法构造的散列表删除结点易实现。 ·拉链法也有缺点:当结点规模较小时,用拉链法中的指针域也要占用额外空间,还是开放定址法省空间。 第十章 文件 文件是性质相同的记录的集合。记录是文件中存取的基本单位,数据项是文件可使用的最小单位,数据项有时称字段或者属性。 文件·逻辑结构是一种线性结构。 ·操作有:检索和维护。并有实时和批量处理两种处理方式。 文件·存储结构是指文件在外存上的组织方式。 ·基本的组织方式有:顺序组织、索引组织、散列组织和链组织。 ·常用的文件组织方式:顺序文件、索引文件、散列文件和多关键字文件。 评价一个文件组织的效率,是执行文件操作所花费的时间和文件组织所需的存储空间。 检索功能的多寡和速度的快慢,是衡量文件操作质量的重要标志。 顺序文件是指按记录进入文件的先后顺序存放、其逻辑顺序和物理顺序一致的文件。主关键字有序称顺序有序文件,否则称顺序无序文件。 一切存储在顺序存储器(如磁带)上的文件都只能顺序文件,只能按顺序查找法存取。 顺序文件的插入、删除和修改只能通过复制整个文件实现。 索引文件的组织方式:通常是在主文件之外建立一张索引表指明逻辑记录和物理记录之间一一对应的关系,它和主文件一起构成索引文件。 索引非顺序文件中的索引表为稠密索引。索引顺序文件中的索引表为稀疏索引。 若记录很大使得索引表也很大时,可对索引表再建立索引,称为查找表。是一种静态索引。 索引顺序文件常用的有两种: ·ISAM索引顺序存取方法:是专为磁盘存取文件设计的,采用静态索引结构。 ·VSAM虚拟存储存取方法:采用B+树作为动态索引结构,由索引集、顺序集、数据集组成。 散列文件是利用散列存储方式组织的文件,亦称为直接存取文件。 散列文件 ·优点是:文件随机存放,记录不需要排序;插入删除方便;存取速度快;不需要索引区,节省存储空间。 ·缺点是:不能进行顺序存取,只能按关键字随机存取,且询问方式限地简单询问,需要重新组织文件。 多重表文件:对需要查询的次关键字建立相应的索引,对相同次关键字的记录建一个链表并将链表头指针、长度、次关键字作为索引表的索引项。 倒排表:次关键字索引表称倒排表,主文件和倒排表构成倒排文件。

数据结构自学考试

五 实验及实习要求

课程设置的目的和意义数据结构是计算机专业本科学生必修的一门专业基础课 通过这门课程的学习 可以使学生掌握三类数据结构的表示与实现 并能将其应用实际问题的求解过程中 培养对问题分析 表示和实现的能力 为独立设计算法和对算法进行复杂性分析奠定坚实的理论基础 本课程在本科生阶段的计算机专业基础课处于一个打基础的地位 本课程的前导课程为计算机科学导论 离散数学 C语言程序设计 学习完本课程后 学生应当能够独立分析 表示并求解基本的问题 设计具有一些小规模程序 学生通过自己动手设计数据结构 编制程序并实现 然后形成分析结果 可以使学生充分认识到课堂上所讲授的各种方法的涵义 体会到各种方法的优缺点 并进一步掌握用高级语言编程和训练对实际问题求解的方法

应达到的基本要求学生在进行完本实验课的教学后 应该能够掌握计算机问题求解中常见的数据结构的表示与实现 对于线性结构 树状结构和网状结构三类结构有明确的认识 能够设计比较简单问题的算法 并可以根据算法编制 调试运行相应的程序 可以对算法的复杂度进行估计与证明 能够编写 组织测试数据 根据实验结果作出算法的性能分布图 并对实验结果进行评价

教学文件及教学形式教学文件:数据结构教科书 讲义 实验报告学生自拟 实验环境:本实验可选用的高级语言为C/C++ 实验用机的硬件配置 软件环境自定

实验成绩评定每次实验的成绩按照 分制评分 实验课的总成绩将按一定比例结合到课程总成绩中

实验报告基本格式实验目的:同教材实验要求:同教材上机环境:硬件配置与软件环境(包括操作系统 编译器等) 完成时间:使用多少个小时来完成本题目 程序说明:使用文字和/或框图说明程序的基本结构程序清单:测试数据与测试结果:思考题:感想与建议:

课程设置:英语(二)、高等教学(工本)、计算机网络原理、离散数学、数据库系统原理、数据库系统原理(实践)、计算机系统结构、操作系统、操作系统(实践)。

中国近现代史纲要、马克思主义基本原理概论、概率论与数理统计(二)、软件工程、软件工程(实践)、数据结构、数据结构(实践)、C++程序设计,

C++程序设计(实践)、Java语言程序设计(一)、Java语言程序设计(一)(实践)、网页设计与制作、计算机通信接口技术、互联网及其应用、毕业考核(或论文\综合实践\实验\实习等)。

扩展资料:

中华人民共和国公民,不受性别、年龄、民族、种族和已受教育程度的限制,均可依照本条例的规定参加高等教育自学考试。

自学考试学习方式灵活、工学矛盾小、费用低,实行“宽进严出”,“教考分离”。

自学考试采用学分累计的方式逐步完成学业,学习者完成专业考试计划规定的全部课程并取得合格成绩,完成毕业论文或其他教学时间任务,思想品德鉴定合格者准予毕业取得相应毕业证书,国家承认其学历。

自学考试各专业课程一般分为公共课、专业基础课、专业课和选修课。一般专科专业的考试课程不少于15门,总学分不低于70学分;本科专业的理论考试课程门数不少于20门,总学分不低于125学分(不包括毕业论文、毕业设计的学分数);

独立本科段专业的理论考试课程门数不少于10门,总学分不低于70学分(不包括毕业论文、毕业设计的学分数)。

自学考试的考试时间安排主要是上半年和下半年两次,上半年安排在四月下旬的第一个周六和周日,下半年安排在十月下旬的第一个周六和周日。

参考资料来源:电子科技大学继续教育学院-招生专业简介

参考资料来源:中国教育考试网-高等教育自学考试暂行条例

自学考试数据库结构

考核要求:达到“领会” 层次知识点:有关体系结构的各种概念 1.4.1 三级模式结构数据库的体系结构 分为三级:内部级、概念级和外部级 (数据抽象的三个级别) (1) 外部级:单个用户所能看到的数据特性;单个用户使用的数据视图的描述称外模式。 (最接近用户) (2)概念级:涉及到所有用户的数据定义,是全局的数据视图;全局数据视图的描述称“概念模式”。 (3)内部级:最接近于物理存储,涉及到实际数据存储的结构;物理存储视图的描述称为“内模式”。 1.4.2 三级结构和两级映象(进一步理解三级模式的具体含义,并掌握两个映象。) 数据按外模式的描述提供给用户,按内模式的描述存储在磁盘中, 而概念模式提供了连接这两级的相对稳定的中间观点,并使得任何一级的改变都不受另一级的牵制。 (1)概念模式 (模式):具体含义;(模式DDL) (2)外模式:具体含义;(外模式DDL) 外模式又称为“用户模式”或“子模式”,通常是概念模式的逻辑子集。 (3)内模式:具体含义;(内模式DDL) (4)模式/内模式映象:用于定义概念模式和内模式之间的对应性。一般在内模式中描述。 (5)外模式/模式映象:用于定义外模式和概念模式间的对应性。在外模式中描述。 1.4.3 两级数据独立性 (1) 物理数据独立性:修改内模式时尽量不影响概念模式及外模式。 (2) 逻辑数据独立性:修改概念模式时尽量不影响外模式和应用程序。 1.4.4 用户及用户界面用户界面定在外部级上。 了解以下概念:DML, 宿主型DML、自含型DML、数据库模式、数据库;数据库模式可以理解为数据库结构,而非数据库本身。

这两本我都学过.自考的数据结构导论是用C语言来描述的,需要有对应课程高级程序语言(一)的基础,也就是要懂的C..如果有数学基础更好,没有也可以硬着头皮啃,这本比较难.至于数据库及其应用是作为数据结构导论的后继课程的..不过这门比较简单,不会数据结构问题也不大,也不需要任何的语言基础..用的是access数据库.兄弟加油!.

自学考试数据结构图

一 单项选择题(本大题共 小题 每小题 分 共 分)

在每小题列出的四个备选项中只有一个是符合题目要求的 请将其代码填写在题后的括号内 错选 多选或未选均无分

在数据结构中 数据的逻辑结构可以分成()

A 内部结构和外部结构 B 线性结构和非线性结构

C 紧凑结构和非紧揍结构 D 动态结构和静态结构

在以单链表为存储结构的线性表中 数据元素之间的逻辑关系用()

A 数据元素的相邻地址表示 B 数据元素在表中的序号表示

C 指向后继元素的指针表示 D 数据元素的值表示

设 p 指向单链表中的一个结点 s 指向待插入的结点 则下述程序段的功能是()

s > next = p > next; p > next = s;

t = p > data; p > data = s > data; s >data = t;

A 结点 *p 与结点 *s 的数据域互换

B 在 p 所指结点的元素之前插入元素

C 在 p 所指结点的元素之后插入元素

D 在结点 *p 之前插入结点 *s

栈和队列都是()

A 限制存取位置的线性结构 B 顺序存储的线性结构

C 链式存储的线性结构 D 限制存取位置的非线性结构

若数组 s[ n ] 为两个栈 s 和 s 的共用存储空间 且仅当 s[ n ] 全满时 各栈才不能进行进栈操作 则为这两个栈分配空间的最佳方案是 s 和 s 的栈顶指针的初值分别为()

A 和 n+ B 和 n/

C 和 n D 和 n+

执行下列程序段后 串 X 的值为()

S= 〞 abcdefgh 〞 ; T= 〞 xyzw 〞 ;

substr (X S strlen(T));

substr (Y S stelen(T) );

strcat (X Y);

A 〞 cdefgh 〞 B 〞 cdxyzw 〞

C 〞 cdefxy 〞 D 〞 cdefef 〞

多维数组之所以有行优先顺序和列优先顺序两种存储方式是因为()

A 数组的元素处在行和列两个关系中 B 数组的元素必须从左到右顺序排列

C 数组的元素之间存在次序关系 D 数组是多维结构 内存是一维结构

从广义表 LS =( (p q) r s )中分解出原子 q 的运算是()

A tail (head (LS)) B head (tail (head (LS)))

C head (tail (LS)) D tail (tail (head (LS)))

在具有 n 个叶子结点的严格二叉树中 结点总数为()

A n+ B n

C n D n

若 是有向图的一条边 则称()

A v i 邻接于 v j B v j 邻接于 v i

C v i 和 v j 相互邻接 D v i 与 v j 不相邻接

在一个带权连通图 G 中 权值最小的边一定包含在 G 的()

A 最小生成树中 B 深度优先生成树中

C 广度优先生成树中 D 深度优先生成森林中

当在二叉排序树中插入一个新结点时 若树中不存在与待插入结点的关键字相同的结点 且新结点的关键字小于根结点的关键字 则新结点将成为()

A 左子树的叶子结点 B 左子树的分支结点

C 右子树的叶子结点 D 右子树的分支结点

希尔排序的增量序列必须是()

A 递增的 B 随机的

C 递减的 D 非递减的

如果在排序过程中 每次均将一个待排序的记录按关键字大小加入到前面已经有序的子表中的适当位置 则该排序方法称为()

A 插入排序 B 归并排序

C 冒泡排序 D 堆排序

设置溢出区的文件是()

A 索引非顺序文件 B ISAM 文件

C VSAM 文件 D 顺序文件

二 填空题(本大题共 小题 每小题 分 共 分)

请在每小题的空格中填上正确答案 错填 不填均无分

下列程序段的时间复杂度为 ________________

product = ;

for (i = n;i> ; i )

for (j = i+ ; j

product *=j;

17 .已知指针 p 指向单链表中某个结点,则语句 p -> next =p -> next -> next 的作用是 ________________ 。WiNGwit.

18 .假设元素只能按 a,b,c,d 的顺序依次进栈,且得到的出栈序列中的第一个元素为 c ,则可能得到的出栈序列为 ________________ ,不可能得到的出栈序列为 ________________ 。

19 .若链串结点中的指针占 4 个字节,每个字符占 1 个字节,则结点大小为 2 的链串的存储密度为 ________________ 。

20 .右图表示的广义表为 ________________ 。

21 .若一棵满三叉树中含有 121 个结点,则该

树的深度为 ________________ 。

22 .若以邻接矩阵表示有向图,则邻接矩阵上

第 i 行中非零元素的个数即为顶点 v i 的 ________________ 。

23 .若希望只进行 8 趟排序便能在 4800 个元素中找出其中值最小的 8 个元素,并且要求排序过程中所进行的关键字比较次数尽可能少,则应该选用 ________________ 排序方法。

24 .在含 20 个关键字的 3 阶 B 树( 2 - 3 树)上查找一个关键字,至多需要访问 ___________ 次外存。

25 .文件上的两类主要操作为 ________________ 和 ________________ 。

三、解答题(本大题共 4 小题,每小题 5 分,共 20 分)

26 .设栈 S1 的入栈序列为 1 2 3 4 (每个数字为 13 个元素),则不可能得到出栈序列 3142 。但可通过增设栈 S2 来实现。例如,按下图中的箭头指示,依次经过栈 S1 和 S2 ,便可得到序列 3 1 4 2 。

如果用 H1 和 H2 分别表示栈 S1 和 S2 的进栈操作,用 P1 和 P2 分别表示两个栈的出栈操作,则得到 3 1 4 2 的一个操作步骤为

H1 , H1 , H1 , P1 , H2 , P2 , P1 , H2 , P1 , H2 , P2 , H1 , P1 , H2 , P2 , P2

请仿照上例写出利用两个栈从 1 2 3 4 得到 4 1 3 2 的操作步骤。

27 .已知树如右图所示,

( 1 )写出该树的后序序列;

( 2 )画出由该树转换得到的二叉树。

28 .为关键字( 17 , 33 , 31 , 40 , 48 )构造一个长度为 7 的散列表,设散列函数为 h(key)=key%7, 用开放定址法解决冲突的探查序列是

hi = (h(key) + i(key%5+1))%7 0 ≤ i ≤ 6

( 1 )画出构造所得的散列表;

( 2 )求出在等概率情况下查找成功时的平均查找长度。

29 .已知 R [ 1..8 ]中的元素依次为( 12 , 5 , 9 , 20 , 6 , 31 , 24 , 27 ),写出按算法 MergeSortDC 对 R 进行自顶向下的二路归并排序过程中,前 5 次调用函数 Merge(R, low, mid, high) 时参数 low, mid 和 high 的值。

void MergeSortDC (int R[], int low, int mid, int high )

{

int mid;

if (low

{

mid = (low +high)/2;

MergeSortDC (R, low, mid);

MergeSortDC (R, mid+1, high);

Merge (R, low, mid, high);

}

} // MergeSortDC

( 1 )第一次调用时的参数值;

( 2 )第二次调用时的参数值;

( 3 )第三次调用时的参数值;

( 4 )第四次调用时的参数值;

( 5 )第五次调用时的参数值;

四、算法阅读题(本大题共 4 小题,每小题 5 分,共 20 分)

30 .下列函数的功能是,对以带头结点的单链表作为存储结构的两个递增有序表(表中不存在值相同的数据元素)进行如下操作:将所有在 Lb 表中存在而 La 表中不存在的结点插入到 La 中,其中 La 和 Lb 分别为两个链表的头指针。请在空缺处填入合适内容,使其成为一个完整的算法。

void union (LinkList La, LinkList Lb)

{

// 本算法的功能是将所有 Lb 表中存在而 La 表中不存在的结点插入到 La 表中

LinkList pre = La, q;

LinkList pa = La -> next;

LinkList pb = Lb -> next;

free (Lb);

while (pa && pd)

{

if (pa -> data data)

{ pre = pa; pa = pa -> next;}

else if (pa -> data > pb ->data)

{

(1) ;

pre = pb;

pb = pb -> next;

(2) ;

}

else

{

q = pb; pb = pb -> next; free (q);

}

}

if (pb)

(3) ;

}

(1)

(2)

(3)

第六章 树 树是n个结点的有限集合,非空时必须满足:只有一个称为根的结点;其余结点形成m个不相交的子集,并称根的子树。 根是开始结点;结点的子树数称度;度为0的结点称叶子(终端结点);度不为0的结点称分支结点(非终端结点);除根外的分支结点称内部结点; 有序树是子树有左,右之分的树;无序树是子树没有左,右之分的树;森林是m个互不相交的树的集合; 树的四种不同表示方法:·树形表示法;·嵌套集合表示法;·凹入表示法·广义表表示法。 二叉树的定义:是n≥0个结点的有限集,它是空集(n=0)或由一个根结点及两棵互不相交的分别称作这个根的左子树和右子树的二叉树组成。 二叉树不是树的特殊情形,与度数为2的有序树不同。 二叉树的4个重要性质: ·。二叉树上第i层上的结点数目最多为2^(i-1)(i≥1)。; ·深度为k的二叉树至多有(2^k)-1个结点(k≥1); ·。在任意一棵二叉树中,若终端结点的个数为n0,度为2的结点数为n2,则n0=n2+1; ·。具有n个结点的完全二叉树的深度为int(log2n)+1. 满二叉树是一棵深度为k,结点数为(2^k)-1的二叉树;完全二叉树是满二叉树在最下层自右向左去处部分结点; 二叉树的顺序存储结构就是把二叉树的所有结点按照层次顺序存储到连续的存储单元中。(存储前先将其画成完全二叉树) 树的存储结构多用的是链式存储。BinTNode的结构为lchild|data|rchild,把所有BinTNode类型的结点,加上一个指向根结点的BinTree型头指针就构成了二叉树的链式存储结构,称为二叉链表。它就是由根指针root确定的。共有2n个指针域,n+1个空指针。 根据访问结点的次序不同可得三种遍历:先序遍历(前序遍历或先根遍历),中序遍历(或中根遍历)、后序遍历(或后根遍历)。时间复杂度为O(n)。 利用二叉链表中的n+1个空指针域来存放指向某种遍历次序下的前趋结点和后继结点的指针,这些附加的指针就称为“线索”,加上线索的二叉链表就称为线索链表。线索使得查找中序前趋和中序后继变得简单有效,但对于查找指定结点的前序前趋和后序后继并没有什么作用。 树和森林及二叉树的转换是对应的。 转换方法: ·树变二叉树:兄弟相连,保留长子的连线。 ·二叉树变树:结点的右孩子与其双亲连。 ·森林变二叉树:树变二叉树,各个树的根相连。 树的存储结构:·有双亲链表表示法:结点data | parent,对于求指定结点的双亲或祖先十分方便,但不适于求指定结点的孩子及后代。 ·孩子链表表示法:为树中每个结点data | next设置一个孩子链表firstchild,并将data | firstchild存放在一个向量中。 ·双亲孩子链表表示法:将双亲链表和孩子链表结合。 ·孩子兄弟链表表示法:结点结构leftmostchild |data | rightsibing,附加两个分别指向该结点的最左孩子和右邻兄弟的指针域。 树的前序遍历与相对应的二叉树的前序遍历一致;树的后序遍历与相对应的二叉树的中序遍历一致。 树的带权路径长度是树中所有叶结点的带权路径长度之和。树的带权路径长度最小的二叉树就称为二叉树(即哈夫曼树)。 在叶子的权值相同的二叉树中,完全二叉树的路径长度最短。 哈夫曼树有n个叶结点,共有2n-1个结点,没有度为1的结点,这类树又称为严格二叉树。 变长编码技术可以使频度高的字符编码短,而频度低的字符编码长,但是变长编码可能使解码产生二义性。如00、01、0001这三个码无法在解码时确定是哪一个,所以要求在字符编码时任一字符的编码都不是其他字符编码的前缀,这种码称为前缀码(其实是非前缀码)。 哈夫曼树的应用最广泛地是在编码技术上,它能够容易地求出给定字符集及其概率分布的前缀码。哈夫曼编码的构造很容易,只要画好了哈夫曼树,按分支情况在左路径上写代码0,右路径上写代码1,然后从上到下到叶结点的相应路径上的代码的序列就是该结点的前缀码。 第七章 图 图的逻辑结构特征就是其结点(顶点)的前趋和后继的个数都是没有限制的,即任意两个结点之间之间都可能相关。 图GraphG=(V,E),V是顶点的有穷非空集合,E是顶点偶对的有穷集。 有向图Digraph:每条边有方向;无向图Undigraph:每条边没有方向。 有向完全图:具有n*(n-1)条边的有向图;无向完全图:具有n*(n-1)/2条边的无向图; 有根图:有一个顶点有路径到达其它顶点的有向图;简单路径:是经过顶点不同的路径;简单回路是开始和终端重合的简单路径; 网络:是带权的图。 图的存储结构: ·邻接矩阵表示法:用一个n阶方阵来表示图的结构是的,适合稠密图。 ·无向图:邻接矩阵是对称的。 ·有向图:行是出度,列是入度。 建立邻接矩阵算法的时间是O(n+n^2+e),其时间复杂度为O(n^2) ·邻接表表示法:用顶点表和邻接表构成不是的,适合稀疏图。·顶点表结构 vertex | firstedge,指针域存放邻接表头指针。 ·邻接表:用头指针确定。 ·无向图称边表; ·有向图又分出边表和逆邻接表; ·邻接表结点结构为 adjvex | next, 时间复杂度为O(n+e)。,空间复杂度为O(n+e)。。 图的遍历: ·深度优先遍历:借助于邻接矩阵的列。使用栈保存已访问结点。 ·广度优先遍历:借助于邻接矩阵的行。使用队列保存已访问结点。 生成树的定义:若从图的某个顶点出发,可以系统地访问到图中所有顶点,则遍历时经过的边和图的所有顶点所构成的子图称作该图的生成树。 最小生成树:图的生成树不,从不同的顶点出发可得到不同的生成树,把权值最小的生成树称为最小生成树(MST)。 构造最小生成树的算法: ·Prim算法的时间复杂度为O(n^2)与边数无关适于稠密图。 ·Kruskal算法的时间复杂度为O(lge),主要取决于边数,较适合于稀疏图。 最短路径的算法:·Dijkstra算法,时间复杂度为O(n^2)。·类似于prim算法。 拓扑排序:是将有向无环图G中所有顶点排成一个线性序列,若 ∈E(G),则在线性序列u在v之前,这种线性序列称为拓扑序列。 拓扑排序也有两种方法:·无前趋的顶点优先,每次输出一个无前趋的结点并删去此结点及其出边,最后得到的序列即拓扑序列。 ·无后继的结点优先:每次输出一个无后继的结点并删去此结点及其入边,最后得到的序列是逆拓扑序列。 第八章 排序 记录中可用某一项来标识一个记录,则称为关键字项,该数据项的值称为关键字。 排序是使文件中的记录按关键字递增(或递减)次序排列起来。 ·基本操作:比较关键字大小;改变指向记录的指针或移动记录。 ·存储结构:顺序结构、链表结构、索引结构。 经过排序后这些具有相同关键字的记录之间的相对次序保持不变,则称这种排序方法是稳定的,否则排序算法是不稳定的。 排序过程中不涉及数据的内、外存交换则称之为“内部排序”(内排序),反之,若存在数据的内外存交换,则称之为外排序。 内部排序方法可分五类:插入排序、选择排序、交换排序、归并排序和分配排序。 评价排序算法好坏的标准主要有两条:执行时间和所需的辅助空间,另外算法的复杂程序也是要考虑的一个因素。 插入排序:·直接插入排序: ·逐个向前插入到合适位置。 ·哨兵(监视哨)有两个作用: ·作为临变量存放R[i] ·是在查找循环中用来监视下标变量j是否越界。 ·直接插入排序是就地的稳定排序。时间复杂度为O(n^2),比较次数为(n+2)(n-1)/2;移动次数为(n+4)(n-1)/2; ·希尔排序: ·等间隔的数据比较并按要求顺序排列,最后间隔为1. ·希尔排序是就地的不稳定排序。时间复杂度为O(n^1.25),比较次数为(n^1.25);移动次数为(1.6n^1.25); 交换排序:·冒泡排序:·自下向上确定最轻的一个。·自上向下确定最重的一个。·自下向上确定最轻的一个,后自上向下确定最重的一个。 ·冒泡排序是就地的稳定排序。时间复杂度为O(n^2),比较次数为n(n-1)/2;移动次数为3n(n-1)/2; ·快速排序:·以第一个元素为参考基准,设定、动两个指针,发生交换后指针交换位置,直到指针重合。重复直到排序完成。 ·快速排序是非就地的不稳定排序。时间复杂度为O(nlog2n),比较次数为n(n-1)/2; 选择排序:·直接选择排序: ·选择最小的放在比较区前。 ·直接选择排序就地的不稳定排序。时间复杂度为O(n^2)。比较次数为n(n-1)/2; ·堆排序 ·建堆:按层次将数据填入完全二叉树,从int(n/2)处向前逐个调整位置。 ·然后将树根与最后一个叶子交换值并断开与树的连接并重建堆,直到全断开。 ·堆排序是就地不稳定的排序,时间复杂度为O(nlog2n),不适宜于记录数较少的文件。 归并排序: ·先两个一组排序,形成(n+1)/2组,再将两组并一组,直到剩下一组为止。 ·归并排序是非就地稳定排序,时间复杂度是O(nlog2n), 分配排序:·箱排序: ·按关键字的取值范围确定箱子数,按关键字投入箱子,链接所有非空箱。 ·箱排序的平均时间复杂度是线性的O(n)。 ·基数排序:·从低位到高位依次对关键字进行箱排序。 ·基数排序是非就稳定的排序,时间复杂度是O(d*n+d*rd)。 各种排序方法的比较和选择: ·。待排序的记录数目n;n较大的要用时间复杂度为O(nlog2n)的排序方法; ·记录的大小(规模);记录大用链表作为存储结构,而快速排序和堆排序在链表上难于实现; ·关键字的结构及其初始状态; ·对稳定性的要求; ·语言工具的条件; ·存储结构; ·时间和辅助空间复杂度。 第九章 查找 查找的同时对表做修改操作(如插入或删除)则相应的表称之为动态查找表,否则称之为静态查找表。 衡量查找算法效率优劣的标准是在查找过程中对关键字需要执行的平均比较次数(即平均查找长度ASL)。 线性表查找的方法: ·顺序查找:逐个查找,ASL=(n+1)/2; ·二分查找:取中点int(n/2)比较,若小就比左区间,大就比右区间。用二叉判定树表示。ASL=(∑(每层结点数*层数))/N. ·分块查找。要求“分块有序”,将表分成若干块内部不一定有序,并抽取各块中的关键字及其位置建立有序索引表。 二叉排序树(BST)定义是:二叉排序树是空树或者满足如下性质的二叉树: ·若它的左子树非空,则左子树上所有结点的值均小于根结点的值; ·若它的右子树非空,则右子树上所有结点的值均大于根结点的值; ·左、右子树本身又是一棵二叉排序树。 二叉排序树的插入、建立、删除的算法平均时间性能是O(nlog2n)。 二叉排序树的删除操作可分三种情况进行处理: ·*P是叶子,则直接删除*P,即将*P的双亲*parent中指向*P的指针域置空即可。 ·*P只有一个孩子*child,此时只需将*child和*p的双亲直接连接就可删去*p. ·*p有两个孩子,则先将*p结点的中序后继结点的数据到*p,删除中序后继结点。 关于B-树(多路平衡查找树)。它适合在磁盘等直接存取设备上组织动态的查找表,是一种外查找算法。建立的方式是从下向上拱起。 散列技术:将结点按其关键字的散列地址存储到散列表的过程称为散列。散列函数的选择有两条标准:简单和均匀。 常见的散列函数构的造方法: ·。平方取中法:hash=int((x^2)%100) ·。除余法:表长为m,hash=x%m ·。相乘取整法:hash=int(m*(x*A-int(x*A));A=0.618 ·。随机数法:hash=random(x)。 处理冲突的方法:·开放定址法: ·一般形式为hi=(h(key)+di)%m1≤i≤m-1,开放定址法要求散列表的装填因子α≤1. ·开放定址法类型: ·线性探查法:address=(hash(x)+i)%m; ·二次探查法:address=(hash(x)+i^2)%m; ·双重散列法:address=(hash(x)+i*hash(y))%m; ·拉链法: ·是将所有关键字为同义词的结点链接在同一个单链表中。 ·拉链法的优点: ·拉链法处理冲突简单,且无堆积现象; ·链表上的结点空间是动态申请的适于无法确定表长的情况; ·拉链法中α可以大于1,结点较大时其指针域可忽略,因此节省空间; ·拉链法构造的散列表删除结点易实现。 ·拉链法也有缺点:当结点规模较小时,用拉链法中的指针域也要占用额外空间,还是开放定址法省空间。 第十章 文件 文件是性质相同的记录的集合。记录是文件中存取的基本单位,数据项是文件可使用的最小单位,数据项有时称字段或者属性。 文件·逻辑结构是一种线性结构。 ·操作有:检索和维护。并有实时和批量处理两种处理方式。 文件·存储结构是指文件在外存上的组织方式。 ·基本的组织方式有:顺序组织、索引组织、散列组织和链组织。 ·常用的文件组织方式:顺序文件、索引文件、散列文件和多关键字文件。 评价一个文件组织的效率,是执行文件操作所花费的时间和文件组织所需的存储空间。 检索功能的多寡和速度的快慢,是衡量文件操作质量的重要标志。 顺序文件是指按记录进入文件的先后顺序存放、其逻辑顺序和物理顺序一致的文件。主关键字有序称顺序有序文件,否则称顺序无序文件。 一切存储在顺序存储器(如磁带)上的文件都只能顺序文件,只能按顺序查找法存取。 顺序文件的插入、删除和修改只能通过复制整个文件实现。 索引文件的组织方式:通常是在主文件之外建立一张索引表指明逻辑记录和物理记录之间一一对应的关系,它和主文件一起构成索引文件。 索引非顺序文件中的索引表为稠密索引。索引顺序文件中的索引表为稀疏索引。 若记录很大使得索引表也很大时,可对索引表再建立索引,称为查找表。是一种静态索引。 索引顺序文件常用的有两种: ·ISAM索引顺序存取方法:是专为磁盘存取文件设计的,采用静态索引结构。 ·VSAM虚拟存储存取方法:采用B+树作为动态索引结构,由索引集、顺序集、数据集组成。 散列文件是利用散列存储方式组织的文件,亦称为直接存取文件。 散列文件 ·优点是:文件随机存放,记录不需要排序;插入删除方便;存取速度快;不需要索引区,节省存储空间。 ·缺点是:不能进行顺序存取,只能按关键字随机存取,且询问方式限地简单询问,需要重新组织文件。 多重表文件:对需要查询的次关键字建立相应的索引,对相同次关键字的记录建一个链表并将链表头指针、长度、次关键字作为索引表的索引项。 倒排表:次关键字索引表称倒排表,主文件和倒排表构成倒排文件。

  •   索引序列
  •   数据结构和自学考试
  •   自学考试数据结构
  •   数据结构自学考试
  •   自学考试数据库结构
  •   自学考试数据结构图
  •   返回顶部

自考地区