当前位置:文档之家› 西安电子科技大学951数据结构大纲

西安电子科技大学951数据结构大纲

西安电子科技大学951数据结构大纲
西安电子科技大学951数据结构大纲

951“数据结构”复习参考提纲

一、考察目标

通信、计算机学科专业基础综合考试涵盖数据结构学科专业基础课程。要求考生比较系统地掌握数据结构专业基础课程的基本概念、基本原理和基本方法,能够综合运用所学的基本原理和基本方法分析、判断和解决有关理论问题和实际问题。

二、考试形式和试卷结构

1、试卷满分及考试时间:本试卷满分为150,考试时间为180分钟

2、答题方式:闭卷,笔试

3、试卷内容结构:数据结构150分

三、总体要求

“数据结构”要求学生掌握数据结构的基本理论和基本方法,熟悉解决程序设计问题所需的基本数据结构和基础算法,掌握各种程序设计中常用的数据结构的基本概念、对应的逻辑结构和存储结构及其基本运算,各种数据结构的基本特点和典型应用场景。熟练使用基础数据结构进行算法程序设计。

四、各章复习要点

(一)数据结构基本概念

1.复习内容

数据结构的概念,数据结构的逻辑结构和物理结构,程序设计的关键技术。

2.具体要求

数据结构的概念、名词和术语数据结构的逻辑结构数据结构的物理结构

(二)线性表

1.复习内容

线性表的基本概念和运算,顺序表的基本运算,单链表、循环链表、双向链表的基本运算,顺序表和链表的应用实例分析。

2.具体要求

线性表的概念和基本运算线性表的顺序存储表示及算法线性表的链式存储表示及算法

顺序表及链表的应用

(三)栈和队列

1.复习内容

栈和队列的基本概念、基本操作、存储结构和应用。

2.具体要求

栈和队列的基本概念和基本操作栈和队列的顺序存储结构栈和队列的链式存储结构

栈和队列的应用

(四)串和数组

1.复习内容

串的基本概念、运算和存储结构,模式匹配算法,数组的概念、存储结构,矩阵压缩存储。

2.具体要求

串的基本概念和基本操作串的存储结构模式匹配算法数组的概念数组的存储结构

矩阵压缩存储

(五)树

1.复习内容

数、二叉树、森林、线索二叉树的基本概念,二叉树的遍历方法,树和森林之间的转换方法,二叉树的应用。

2.具体要求

树结构的基本概念、术语

二叉树的性质和存储表示。二叉树的遍历及递归算法的运用

树和森林(存储表示、转化方法、树的遍历)

线索化技术(线索二叉树、线索的应用)二叉树的应用(哈夫曼树及应用、二叉排序树)

(六)图

1.复习内容

图的基本概念和存储结构,图的遍历,生成树和最小生成树,最短路径,拓扑排序,关键路径。

2.具体要求

图的基本概念、术语图的存储方法(邻接矩阵、邻接表)图的DFS和BFS搜索算法及相关应用

生成树和最小生成树(Prime算法、Kruskal算法)

最短路径拓扑排序关键路径

(七)索引结构与散列技术

1.复习内容

索引和散列技术的应用背景,索引结构,散列表的概念,散列函数的构造方法,解决冲突的方法。

2.具体要求

索引结构的表示索引结构的应用散列表的概念散列表的构造散列表的查找

(八)缩小规模算法

1.复习内容

分治与递归算法设计,动态规划的基本要素,贪心算法。

2.具体要求

递归与分治算法动态规划算法掌握贪心算法

数据结构课程设计

1.一元稀疏多项式计算器 [问题描述] 设计一个一元稀疏多项式简单计算器。 [基本要求] 输入并建立多项式; 输出多项式,输出形式为整数序列:n, c1, e1, c2, e2,……, cn, en ,其中n是多项式的项数,ci, ei分别是第i项的系数和指数,序列按指数降序排序; 多项式a和b相加,建立多项式a+b; 多项式a和b相减,建立多项式a-b; [测试数据] (2x+5x8-3.1x11)+(7-5x8+11x9)=(-3.1x11+11x9+2x+7) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2-x2+7.8x15)=(-7.8x15-1.2x9-x+12x-3) (1+x+x2+x3+x4+x5)+(-x3-x4)=(x5+x2+x+1) (x+x3)+(-x-x3)=0 (x+x2+x3)+0=(x3+x2+x) [实现提示] 用带头结点的单链表存储多项式,多项式的项数存放在头结点中。 2.背包问题的求解 [问题描述] 假设有一个能装入总体积为T的背包和n件体积分别为w1, w2, …,wn的物品,能否从n件物品中挑选若干件恰好装满背包,即使w1+w2+…+wn=T,要求找出所有满足上述条件的解。例如:当T=10,各件物品的体积为{1,8,4,3,5,2}时,可找到下列4组解:(1,4,3,2)、(1,4,5)、(8,2)、(3,5,2) [实现提示] 可利用回溯法的设计思想来解决背包问题。首先,将物品排成一列,然后顺序选取物品转入背包,假设已选取了前i件物品之后背包还没有装满,则继续选取第i+1件物品,若该件物品“太大”不能装入,则弃之而继续选取下一件,直至背包装满为止。但如果在剩余的物品中找不到合适的物品以填满背包,则说明“刚刚”装入背包的那件物品“不合适”,应将它取出“弃之一边”,继续再从“它之后”的物品中选取,如此重复,直至求得满足条件的解,或者无解。 由于回溯求解的规则是“后进先出”因此自然要用到栈。 3.完全二叉树判断 用一个二叉链表存储的二叉树,判断其是否是完全二叉树。 4.最小生成树求解(1人) 任意创建一个图,利用克鲁斯卡尔算法,求出该图的最小生成树。 5.最小生成树求解(1人) 任意创建一个图,利用普里姆算法,求出该图的最小生成树。 6.树状显示二叉树 编写函数displaytree(二叉树的根指针,数据值宽度,屏幕的宽度)输出树的直观示意图。输出的二叉树是垂直打印的,同层的节点在同一行上。 [问题描述] 假设数据宽度datawidth=2,而屏幕宽度screenwidth为64=26,假设节点的输出位置用 (层号,须打印的空格数)来界定。 第0层:根在(0,32)处输出;

《数据结构》教学纲要(doc 9页)

《数据结构》教学纲要(doc 9页)

《数据结构》教学大纲 2001年9月 一、开课系(部):经济信息管理系 二、教学对象:信息管理与信息系统专业本科 三、教学目的: 数据结构是高等教育计算机信息管理专业中的一门专业基础课,在计算机软件的各个领域中均会使用到数据结构的有关知识。本课程的目的和任务是使学生较全面地掌握各种常用的数据结构,为学习后续软件课程提供必要的基础,提高运用数据结构解决实际问题的能力。 四、教学要求: 1. 从数据结构的逻辑结构、存储结构和数据的运算三个方面去掌握线性表、栈、队列、串、数组、广义表、树、图和文件等常用的数据结构。 2. 掌握在各种常用的数据结构上实现的排序和查找运算。 3. 对算法的时间和空间复杂性有一定的分析能力。 4. 针对简单的应用问题.应能选择合适的数据结构及设计有效的算法解决之。 五、教学课时: 教学内容课内学时 第1章绪论 2 第2章线性表 4 第3章栈和队列 6 第4章串 4 笫5章数组和广义表 4 第6章树和二叉树 6 第7、8章略 第9章查找 4 第10章内部排序 4 课程总复习 2 六、考核形式: 期末考试与平时讨论相结合(80%和20%)。 期末试卷结构: 单项选择填空简答应用算法设计 20 15分20分15分30分

态。 3.3 算法描述和算法分析的方法,对于一般算法能分析出时间复杂度。 第2章线性表 (一)课程内容 2.1 线性表的逻辑结构 2.2 线性表的顺序存储结构 2.3 线性表的链式存储结构 2.4 顺序表和链表的比较 (二)学习目的与要求 本章目的是介绍线性表的逻辑结构和各种存储表示方法,以及定义在逻辑结构上的各种基本运算及其在存储结构上如何实现这些基本运算。要求在熟悉这些内容的基础上,能够针对具体应用问题的要求和性质,选择合适的存储结构设计出相应的有效算法,解决与线性表相关的实际问题。本章重点是熟练掌握顺序表和单链表上实现的各种基本算法及相关的时间性能分析,难点是能够使用本章所学到的基本知识设计有效算法解决与线性表相关的应用问题。 (三)考核知识点与考核要求 1. 线性表的逻辑结构,要求达到“识记”层次。 1.1 线性表的逻辑结构特征。 1.2 线性表上定义的基本运算,并能利用基本运算构造出较复杂的运算。 2. 线性表的顺序存储结构.要求达到“综合应用”层次。 2.1 顺序表的含义及特点,即顺序表如何反映线性表中元素之间的逻辑关系。 2.2 顺序表上的插入、删除操作及其平均时间性能分析。 2.3 利用顺序表设计算法解决筒单的应用问题。 3. 线性表的链式存储结构,要求达到“综合应用”层次。 3.1 链表如何表示线性表中元素之间的逻辑关系。 3.2 链表中头指针和头结点的使用。 3.3 单链表、双链表、循环链表链接方式上的区别。 3.4 单链表上实现的建表、查找、插入和删除等基本算法,并分析其时间复杂度。 3.5 循环链表上尾指针取代头指针的作用,以及单循环链表上的算法与单链表上相应算法的异同点。 3.6 双链表的定义及其相关的算法。 3.7 利用链表设计算法解决简单的应用问题。 4.顺序表和链表的比较.要求达到“领会”层次。

《数据结构》课程考试大纲

03 《数据结构》考试大纲 主要参考教材:严蔚敏、吴伟民编著,《数据结构(C语言版)》,清华大学出版社 谭国律等编著《数据结构》,浙江大学出版社。 总体要求: “数据结构”是一门专业技术基础课。目的就是要培养他们的数据抽象能力,学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及实现应用的相应算法,并掌握分析算法的时间和空间复杂度的技术。 考生在复习时,重点掌握基本概念、基本算法。考题以基本内容为主,题目以基础知识题为主,各章较难内容、较偏内容不考。课本所有加“*”号章节不考,第8章动态存储管理不考。外部排序,文件部分不考。 各章考试内容及要求: 一、绪论:熟悉各名词、术语的含义,掌握基本概念,特别是数据的逻辑结构和存储结构之 间的关系;了解抽象数据类型的定义、表示和实现方法;熟悉类C语言的书写规范,特别要注意值调用和引用调用的区别,输入、输出的方式以及错误处理方式;理解算法五个要素的确切含义;掌握计算语句频度和估算算法时间复杂度的方法。 二、线性表:线性表的逻辑结构定义、抽象数据类型定义和各种存储结构的描述方法;在线 性表的两类存储结构(顺序存储和链式存储)上实现基本操作;一元多项式的抽象数据类型定义、表示及加法的实现。

三、栈和队列:栈和队列的结构特性;在两种存储结构上如何实现栈和队列的基本操作和栈 和队列在程序设计中的应用。(离散事件模拟不考) 四、串:串的数据类型定义;串的三种存储表示:定长顺序存储结构、块链存储结构和堆 分配存储结构;串的各种基本操作的实现及应用;串的朴素模式匹配算法。 五、数组:数组的类型定义和表示方法;特殊矩阵和稀疏矩阵的压缩存储方法及运算的实 现;(广义表不考)。 六、树和二叉树:二叉树的定义、性质和存储结构;二叉树的遍历和线索化以及遍历算法 的各种描述形式;树和森林的定义、存储结构、树和森林与二叉树的转换、遍历;树的多种应用;本章是该课程的重点内容之一。 七、图:图的定义和术语;图的邻接矩阵存储结构、邻接表存储结构:图的两种遍历策略: 深度优先搜索和广度优先搜索;图的最小生成树prim算法、Kruskal 算法;拓扑排序算法;单源最短路径问题的Dijstra 算法。 八、查找:讨论查找表(包括静态查找表和动态查找表)的各种实现方法:顺序表、有序表、 树表和哈希表;关于衡量查找表的主要操作——查找的查找效率的平均查找长度的讨论。(静态树表、平衡二叉树、B树不考)

西安电子科技大学人工智能试题

1.(该题目硕士统招生做)请用框架法和语义网络法表示下列事件。(10分) 2015年2月20日上午11点40分,广东省深圳市光明新区柳溪工业园附近发生山体滑坡,经初步核查,此次滑坡事故共造成22栋厂房被掩埋,涉及公司15家,截至目前已安全撤离900人,仍有22人失联。 答:框架表示法(5分):(给分要点:确定框架名和框架槽,根据报道给出的相关数据填充,主要内容正确即可给分,不必与参考答案完全一致) <山体滑坡> 时间:2015年2月20日上午11点40分 地点:广东省深圳市光明新区柳溪工业园附近 掩埋厂房:22栋 涉及公司数目:15家 安全撤离人数:900人 失联人数:22人 语义网络表示法(5分):(给分要点:确定语义网络的节点及其连接关系,根据报道内容进行填充,主要内容正确即可给分,不必与参考答案完全一致) 1. (该题目全日制专业学位硕士做)请用一种合适的知识表示方法来表示下面知识。(10分) How Old Are YOU是微软推出的一款测年龄应用,该应用架设在微软服务平台Azure上,该平台具有机器学习的开发接口,第三方开发者可以利用相关的接口和技术,分析人脸照片。

(给分要点:采用合适的知识表示方法,正确即可给分,不必与参考答案完全一致) 答: 类属(继承):<应用程序> 用途:测年龄 开发者:微软 服务平台: 开发接口:机器学习 用途:分析人脸照片 2.(该题目硕士统招生做)请用归结反演的方法求解下述问题。(15分) 已知:张和李是同班同学,如果x和y是同班同学,则x的教室也是y的教室,现在张在302教室上课。 问:现在李在哪个教室上课? 解:第一步:定义谓词;(谓词不一定与参考答案完全相同,只要正确表示即可给分)(3分)C(x, y) x和y是同班同学; At(x, u) x在u教室上课。 第二步:根据定义的谓词写出上述知识的谓词表示,并化成子句集;(6分) 把已知前提用谓词公式表示如下: C(zhang, li) (?x) (?y) (?u) (C(x, y)∧At(x, u)→At(y,u)) At(zhang, 302) 把目标的谓词公式表示如下: (?v)At(li, v) 把上述公式化为子句集: (1) C(zhang, li) (2) ﹁C(x, y)∨﹁At(x, u)∨At(y, u) (3) At(zhang, 302) 把目标的否定化成子句式: (4) ﹁At(li,v) ∨Answer(v) 第三步:使用归结原理对子句集进行归结;(6分)(注意:具体的归结顺序不一定和参考答案完全一致,只要归结过程正确,最后得到的答案正确即可给分)

数据结构课程设计报告模板

课程设计说明书 课程名称:数据结构 专业:班级: 姓名:学号: 指导教师:成绩: 完成日期:年月日

任务书 题目:黑白棋系统 设计内容及要求: 1.课程设计任务内容 通过玩家与电脑双方的交替下棋,在一个8行8列的方格中,进行棋子的相互交替翻转。反复循环下棋,最后让双方的棋子填满整个方格。再根据循环遍历方格程序,判断玩家与电脑双方的棋子数。进行大小判断,最红给出胜负的一方。并根据y/n选项,判断是否要进行下一局的游戏。 2.课程设计要求 实现黑白两色棋子的对峙 开发环境:vc++6.0 实现目标: (1)熟悉的运用c语言程序编写代码。 (2)能够理清整个程序的运行过程并绘画流程图 (3)了解如何定义局部变量和整体变量; (4)学会上机调试程序,发现问题,并解决 (5)学习使用C++程序来了解游戏原理。 (6)学习用文档书写程序说明

摘要 本文的研究工作在于利用计算机模拟人脑进行下黑白棋,计算机下棋是人工智能领域中的一个研究热点,多年以来,随着计算机技术和人工智能技术的不断发展,计算机下棋的水平得到了长足的进步 该程序的最终胜负是由棋盘上岗双方的棋子的个数来判断的,多的一方为胜,少的一方为负。所以该程序主要运用的战术有削弱对手行动战术、四角优先战术、在游戏开局和中局时,程序采用削弱对手行动力战术,即尽量减少对手能够落子的位置;在游戏终局时则采用最大贪吃战术,即尽可能多的吃掉对手的棋子;而四角优先战术则是贯穿游戏的始终,棋盘的四角围稳定角,不会被对手吃掉,所以这里是兵家的必争之地,在阻止对手进角的同时,自己却又要努力的进角。 关键词:黑白棋;编程;设计

数据结构复习提纲(整理)

复习提纲 第一章数据结构概述 基本概念与术语(P3) 1.数据结构是一门研究非数值计算程序设计问题中计算机的操作对象以及他们之间的关系和操作的学科. 2.数据是用来描述现实世界的数字,字符,图像,声音,以及能够输入到计算机中并能被计算机识别的符号的集合 2.数据元素是数据的基本单位 3.数据对象相同性质的数据元素的集合 4.数据结构包括三方面内容:数据的逻辑结构.数据的存储结构.数据的操作. (1)数据的逻辑结构指数据元素之间固有的逻辑关系. (2)数据的存储结构指数据元素及其关系在计算机内的表示 ( 3 ) 数据的操作指在数据逻辑结构上定义的操作算法,如插入,删除等. 5.时间复杂度分析 -------------------------------------------------------------------------------------------------------------------- 1、名词解释:数据结构、二元组 2、根据数据元素之间关系的不同,数据的逻辑结构可以分为 集合、线性结构、树形结构和图状结构四种类型。 3、常见的数据存储结构一般有四种类型,它们分别是___顺序存储结构_____、___链式存储结构_____、___索引存储结构_____和___散列存储结构_____。 4、以下程序段的时间复杂度为___O(N2)_____。 int i,j,x; for(i=0;i=0)个具有相同性质的数据元素a1,a2,a3……,an组成的有穷序列 //顺序表结构 #define MAXSIZE 100 typedef int DataType; Typedef struct{ DataType items[MAXSIZE]; Int length; }Sqlist,*LinkList; //初始化链表 void InitList(LinkList *L){ (*L)=(LinkList)malloc(sizeof(LNode)); if(!L){ cout<<”初始化失败!”; return;

西安电子科技大学单片机考试试卷

西安电子科技大学本科课程考试试卷2008—2009学年第一学期《单片机原理与接口技术》 课程A卷 专业年级:07电信命题教师:郭文川审题教师: 考生班级:学号:考生姓名: 一、填空题:(每空1分,共20分) 1、MCS—5l单片机的最大程序寻址空间是64 KB,该空间的地址范围从0000H 至0FFFFH,系统上电及复位后,程序入口地址为0000H。 2、若由程序设定PSW中的RS1、RS0=01,则工作寄存器R0~R7的直接地址为08H~0FH。 3、MCS-51单片机的I/O端口采用统一编址方式。、 4、一个8位D/A转换器其分辨率为_ 1/256 ,若该8位D/A转换器的基准电压为5V, 则数字量100对应得模拟量为 1.953V(5*100/256V)。 5、单片机系统中经常采用的地址译码技术包括线选法和译码法。 6、INTEL 8051 CPU 是8 位的单片机,其内部有4 KB的ROM。 7、指出下列各指令中源操作数的寻址方式。 (1)MOVC A,@A+DPTR (变址寻址) (2)XCH A,@R0;(寄存器间接寻址) (3)MOV C,P1.0 (位直接寻址) (4)JC LOOP (相对寻址) 8、判断下列各条指令的书写格式是否有错,并指出原因。 (1)MUL R0,R1 (错,乘法指令用A×B ) (2)MOV A, @R7 (错,@R7非法)

(3)MOV A, #3000H (错,累加器A为8位存储器) (4)MOV R1, C (错,C为进位位不能送给寄存器R1) 二、选择题:(每题1分,共10分) 1.当MCS-51单片机接有外部存储器时,P2口可作为 D 。 A.数据输入口 B. 数据的输出口 C.准双向输入/输出口D.高8位地址线 2.单片机的并行接口中,作为数据线使用的并行口是 A 。 A.P0 B. P1 C. P2 D. P3 3.MCS—5l单片机的堆栈区是设置在 C 中。 A.片内ROM区B.片外ROM区 C.片内RAM区 D. 片外RAM区 4.片内RAM的20H~2FH为位寻址区,所包含的位地址是。 A.00H~20H B. 00H~7FH C.20H~2FH D.00H~FFH 5.在寄存器间接寻址方式中,间址寄存器中存放的数据是。 A.参与操作的数据B.操作数的地址值 C.程序的转换地址D.指令的操作码 6.当需要从MCS-51单片机程序存储器取数据时,采用的指令为。 A. MOV A, @R1 B.MOVC A, @A + DPTR C. MOVX A, @ R0 D.MOVX A, @ DPTR 7. 能够用紫外光擦除ROM中程序的只读存储器称为。 A.掩膜ROM B.PROM C.EPROM D.EEPROM 8. 在片外扩展一片2716程序存储器芯片要地址线。 A.8根 B.13根 C.11根 D.20根 9. 定时器/计数器工作方式1是。 A. 8位计数器结构 B. 2个8位计数器结构 C. 13位计数结构 D. 16位计数结构 10.T0中断的中断入口地址为。 A. 0003H B. 000BH C. 0013H D. 001BH 三、分析程序,写出结果(每空3分,共18分) 1、已知(A)=83H,(R0)=17H,(17H)=34H,执行下列程序段后(A)= 0CBH 。

数据结构课程设计报告

《数据结构课程设计》报告 题目:课程设计题目2教学计划编制 班级:700 学号:09070026 姓名:尹煜 完成日期:2011年11月7日

一.需求分析 本课设的任务是根据课程之间的先后的顺序,利用拓扑排序算法,设计出教学计划,在七个学期中合理安排所需修的所有课程。 (一)输入形式:文件 文件中存储课程信息,包括课程名称、课程属性、课程学分以及课程之间先修关系。 格式:第一行给出课程数量。大于等于0的整形,无上限。 之后每行按如下格式“高等数学公共基础必修6.0”将每门课程的具体信息存入文件。 课程基本信息存储完毕后,接着给出各门课程之间的关系,把每门课程看成顶点,则关系即为边。 先给出边的数量。大于等于0的整形。 默认课程编号从0开始依次增加。之后每行按如下格式“1 3”存储。此例即为编号为1的课程与编号为3的课程之间有一条边,而1为3的前驱,即修完1课程才能修3课程。 例: (二)输出形式:1.以图形方式显示有向无环图

2.以文本文件形式存储课程安排 (三)课设的功能 1.根据文本文件中存储的课程信息(课程名称、课程属性、课程学分、课程之间关系) 以图形方式输出课程的有向无环图。 拓展:其显示的有向无环图可进行拖拽、拉伸、修改课程名称等操作。 2.对课程进行拓扑排序。 3.根据拓扑排序结果以及课程的学分安排七个学期的课程。 4.安排好的教学计划可以按图形方式显示也可存储在文本文件里供用户查看。 5.点击信息菜单项可显示本人的学好及姓名“09070026 尹煜” (四)测试数据(见六测设结果)

二.概要设计 数据类型的定义: 1.Class Graph即图类采用邻接矩阵的存储结构。类中定义两个二维数组int[][] matrix 和Object[][] adjMat。第一个用来标记两个顶点之间是否有边,为画图服务。第二个 是为了实现核心算法拓扑排序。 2.ArrayList list用来存储课程信息。DrawInfo类是一个辅助画图的类,其中 包括成员变量num、name、shuxing、xuefen分别代表课程的编号、名称、属性、 学分。ArrayList是一个DrawInfo类型的数组,主要用来在ReadFile、DrawG、DrawC、SaveFile、Window这些类之间辅助参数传递,传递课程信息。 3.Class DrawInfo, 包括int num;String name;String shuxing;float xuefen;四个成员变量。 4.Class Edge包括int from;int to;double weight;三个成员变量。 5.Class Vertex包括int value一个成员变量。 主要程序的流程图: //ReadFile.java

数据结构复习题及答案

复习题(一) 一.填空题(每空1分,共15分) 1.一个算法的效率可分为___________________效率和___________________效率。 2.__________________是被限定为只能在表的一端进行插入运算,在表的另一端 进行删除运算的线性表。 3.设S=“A;/document/Mary.doc”,则strlen(S)= _______________,“/”的字符定位 的位置为_______________。 4.设数组a[1…60, 1…70]的基地址为2048,每个元素占2个存储单元,若以列 序为主序顺序存储,则元素a[32,58]的存储地址为_______________。 5.一棵深度为6的满二叉树有_______________个分支结点和_______________个 叶子。 6.用5个权值{3, 2, 4, 5, 1}构造的哈夫曼(Huffman)树的带权路径长度 是。 7.设有一稀疏图G,则G采用存储较省空间。 8.快速排序算法是对算法的一种改进。 9.在数据的存放无规律而言的线性表中进行检索的最佳方法 是。 10.大多数排序算法都有两个基本的操作: 和。 11.设要将序列(Q, H, C, Y, P, A, M, S, R, D, F, X)中的关键码按字母序的升序重 新排列,则:快速排序一趟扫描的结果是。 二.选择题(每题2分,共30分) ()1.数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为: (A)存储结构(B)逻辑结构(C)顺序存储结构(D)链式存储结构 ()2. 向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要

西安电子科技大学试卷资料

西安电子科技大学试卷 考试时间120 分钟试卷编号参考答案 班级学号姓名任课老师姓名 请按下述要求正确答题: 1. 在试卷指定位置上正确写入你的班级、学号、姓名和任课老师姓名。 2.全部试卷共 11 页。试卷必须交回,否则以零分计。 3.试题解答必须写在试卷上,若试卷上写不下可以写在试卷的背面,写在草稿纸上的解答一律无效。 4.本试卷的试题共有五道大题,需要全部解答。 5.解答前务必阅读清楚题意,及解答要求,否则导致不能正确评分概由自己负责。 一、单项选择题(每小题1分,共10分) 1.访管指令所引起的中断属于( C )中断。 A.外中断B.I/O中断C.软中断D.程序中断2.资源静态分配法破坏了死锁产生的(B)条件来预防死锁的发生。 A.互斥控制B.保持和等待 C.不可剥夺控制D.循环等待 3.虚拟存储的基础是程序局部性理论,它的基本含义是( B )。 A.代码的顺序执行B.程序执行时对内存访问的不均匀性 C.变量的连续访问D.指令的局部性 4.关于SPOOLING系统(D)的描述是错误的。 A.不需要独占设备 B.加快了作业执行的速度 C.使独占设备变成了共享设备

D.利用了处理器与通道并行工作的能力 5.设系统中有m个同类资源数,n为系统中的并发进程数,当n个进程共享m个互斥资源时,每个进程的最大需求数是w,试问下列情况下系统会死锁的是(D)。 A.m=4,n=3,w=2 B.m=2,n=2,w=1 C.m=5,n=2,w=3 D.m=4,n=3,w=3 6.文件系统中实现按名存取的功能是通过查找(B)来实现的。 A.磁盘空间B.文件目录C.磁盘控制器D.位示图7.下面的叙述中,(D)不是设备管理中引入缓冲机制的主要原因。 A.缓和CPU和I/O设备间的速度不匹配问题 B.减少对CPU的中断频率和放宽对CPU响应时间的限制 C.提高CPU和I/O设备间的并行性 D.节省系统内存 8.下列操作系统强调交互性的系统是(B)。 A.批处理系统B.分时系统C.实时系统D.网络操作系统 9.响应比高者优先作业调度算法是通过计算时间和(D)来实现的。 A.输入时间B.完成时间C.周转时间D.等待时间10.在可变分区管理方案中,若采用“最佳适应”分配算法,通常将空闲区按(A )排列。 A.容量递增B.容量递减C.地址递增D.地址递减二、填空题(每空格1分,共15分) 1.把作业装入内存时完成地址变换的方式称静态地址再定位,而在作业执行期间(访问到指令或数据)才进行地址变换的方式称为动态地址再定位。 2.死锁产生的四个必要条件是互斥执行、保持和等待、不可剥夺和循环等待。

数据结构课程设计

《数据结构》 课程设计报告 学号 姓名 班级 指导教师 安徽工业大学计算机学院 2010年6月

建立二叉树和线索二叉树 1.问题描述: 分别用以下方法建立二叉树并用图形显示出来: 1)用先序遍历的输入序列 2)用层次遍历的输入序列 3)用先序和中序遍历的结果 2.设计思路: 分三个方式去实现这个程序的功能,第一个实现先序遍历的输入数列建立二叉树;第二个是用层次遍历的方法输入序列;第三个是用先序和后序遍历的结果来建立二叉树;三种方法建立二叉树后都进行输出。关键是将这三个实现功能的函数写出来就行了;最后对所建立的二叉树进行中序线索化,并对此线索树进行中序遍历(不使用栈)。 3.数据结构设计: 该程序的主要目的就是建立二叉树和线索二叉树,所以采用树的存储方式更能完成这个程序; 结点的结构如下: typedef struct bnode { DataType data; int ltag,rtag; struct bnode *lchild, *rchild; } Bnode, *BTree; 4.功能函数设计: BTree CreateBinTree() 用先序遍历的方法讲二叉树建立; BTree CREATREE() 用队列实现层次二叉树的创建; void CreatBT(); 用先序和中序遍历的结果建立二叉树; void InThread(BTree t,BTree pre) 中序线索化; 5.编码实现: #include #include #define max 100 typedef struct bnode { char data; int ltag,rtag; struct bnode *lchild,*rchild; }Bnode,*BTree; BTree Q[max]; BTree CREATREE() { char ch; int front=1,rear=0;

数据结构-教学大纲

《数据结构》教学大纲 课程编号:071213A 课程类型:□通识教育必修课□通识教育选修课 □专业必修课□专业选修课 ■学科基础课 总学时:48讲课学时:32 实验(上机)学时:16 学分:3 适用对象:计算机科学与技术专业 先修课程: 程序设计基础与应用、计算机基础 一、教学目标 本课程是计算机科学与技术专业的必修课。本课程是计算机科学与技术专业的核心课程,既重视学生相关理论的系统学习,又强调培养学生发现问题、分析问题和解决问题的实践能力。《数据结构》在计算机科学中是一门综合性的专业主干课,它是介于数学、计算机硬件、计算机软件三者之间的一门核心课程,而且是操作系统、数据库系统及其它系统程序的大型应用程序设计的基础,同时又直接为从事各类计算机应用的技术人员提供了必要的基本知识和解决实际问题的多种方法。 用计算机解决任何问题都需要进行数据表示和数据处理,而数据表示和数据处理正是《数据结构》要研究的内容。《数据结构》主要介绍如何合理地组织数据、有效地存储和处理数据,正确地设计算法以及对算法的分析和评价。该课程逻辑上以线性结构、层次结构、网状结构为主线,物理上分顺序存储、链式存储,分别介绍基本数据结构的特点和算法。并重点介绍有关各种检索、排

序和文件组织的常用算法。通过上述知识的学习和能力的提高,为后续学习和实际工作打下良好的知识基础和能力基础。 目标1:通过对数据结构基本知识进行讲解,让学生理解并掌握数据的逻辑结构和物理结构,并掌握算法设计的基本思想。 目标2:培养学生分析算法复杂度的初步能力,锻炼学生逻辑思维能力和想象能力,并使之了解数据结构的各种应用场景。 目标3:鼓励学生运用算法知识解决各自学科的实际问题,培养他们的独立科研的能力和理论联系实际的能力。 二、教学内容及其与毕业要求的对应关系 (一)教学内容 1.知识体系 第一部分:数据结构的基本概念,包括数据、数据元素、数据项等基本概念、数据类型、抽象数据类型、算法的定义、算法的特性、算法的时间代价、算法的空间代价; 第二部分:线性表的逻辑结构特性,以及线性表的两种存储实现方式;顺序表的定义与实现,包括搜索、插入、删除算法的实现及其平均比较次数的计算;单链表的类定义、构造函数、单链表的插入与删除算法及其平均比较次数的计算; 第三部分:栈的定义、特性和栈的抽象数据类型,栈的顺序表示、链表表示以及相应操作的实现;队列的定义、特性和队列的抽象数据类型,队列的顺序表示、链表表示以及相应操作的实现; 第四部分:串的定义,串的表示和实现,串的操作的定义; 第五部分:数组的两种存储表示方法;矩阵的压缩存储; 第六部分:树和森林的概念。包括树的定义、树的术语、树的抽象数据类型;二叉树的概念、性质及二叉树的表示;二叉树的遍历方法;线索化二叉树的特性及寻找某结点的前驱和后继的方法;树与森林的实现,重点在用二叉树实现;森林与二叉树的转换;树的遍历算法;二叉树的计数方法及从二叉树遍历结果得到

数据结构课程设计

一、高校社团管理 在高校中,为了丰富学生的业余生活,在学校的帮助下,会成立许多社团,少则几个,多则几十个。为了有效管理这些社团,要求编写程序实现以下功能:1.社团招收新成员; 2.修改社团相应信息 3.老成员离开社团 4.查询社团情况; 5.统计社团成员数; 二、简单文本编辑器 设计一个文本编辑器,允许将文件读到内存中,也就是存储在一个缓冲区中。这个缓冲区将作为一个类的内嵌对象实现。缓冲区中的每行文本是一个字符串,将每行存储在一个双向链表的结点中,要求设计在缓冲区中的行上执行操作和在单个行中的字符上执行字符串操作的编辑命令。 基本要求: 包含如下命令列。可用大写或小写字母输入。 R:读取文本文件到缓冲区中,缓冲区中以前的任何内容将丢失,当前行是文件的第一行; W:将缓冲区的内容写入文本文件,当前行或缓冲区均不改变。 I:插入单个新行,用户必须在恰当的提示符的响应中键入新行并提供其行号。 D:删除当前行并移到下一行; F:可以从第1行开始或从当前行开始,查找包含有用户请求的目标串的第一行; C:将用户请求的字符串修改成用户请求的替换文本,可选择是仅在当前行中有效的还是对全文有效的。 Q:退出编辑器,立即结束; H:显示解释所有命令的帮助消息,程序也接受?作为H的替代者。 N:当前行移到下一行,也就是移到缓冲区的下一行; P:当前行移到上一行,也就是移到缓冲区的上一行;

B:当前行移到开始处,也就是移到缓冲区的第一行; E:当前行移到结束处,也就是移到缓冲区的最后一行; G:当前行移到缓冲区中用户指定的行; V:查看缓冲区的全部内容,打印到终端上。 三、电话客户服务模拟 一个模拟时钟提供接听电话服务的时间(以分钟计),然后这个时钟将循环的 自增1(分钟)直到达到指定时间为止。在时钟的每个"时刻",就会执行一次检查来看看对当前电话服务是否已经完成了,如果是,这个电话从电话队列中删除,模 拟服务将从队列中取出下一个电话(如果有的话)继续开始。同时还需要执行一个检查来判断是否有一个新的电话到达。如果是,其到达时间被记录下来,并为其产生一个随机服务时间,这个服务时间也被记录下来,然后这个电话被放入电话队列中,当客户人员空闲时,按照先来先服务的方式处理这个队列。当时钟到达指定时间时,不会再接听新电话,但是服务将继续,直到队列中所偶电话都得到处理为止。 基本要求: (1)程序需要的初始数据包括:客户服务人员的人数,时间限制,电话的到达速率,平均服务时间 (2)程序产生的结果包括:处理的电话数,每个电话的平均等待时间 四、停车场管理 设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进出。在停车场内,汽车按到达的先后次序,由北向南依次排列(假设大门在最南端)。若停车场内已停满n辆车,则后来的汽车需在门外的便道上等候,当有车开走时,便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出停车场为它让路,待该辆车开出大门后,其他车辆再按原次序返回车场。每辆车离开停车场时,应按其停留时间的交费(从进入便道开始计时)。在这里假设汽车从便道上开走时不收取任何费用 基本要求: (1)汽车的输入信息格式为(到达/离去的标识,汽车牌照号码,到达/离去的时间)

数据结构数据结构复习提纲(新)

复习提纲: 第一章: 1.数据结构的基本概念; 2.数据结构的4类基本结构及其特性; 3.存储结构的分类及特点; 4.算法的时间复杂度计算; 第二章: 1.线性表的基本概念; 2.线性表的顺序存储结构的特点和插入删除算法; 3.顺序存储结构的应用; 4.单循环链表的存储结构特点,链表空的判断方法、插入、删除结点算法实现,报数游戏算法实现;5.循环双链表的存储特点,插入、删除结点算法实现。 第三章: 1.栈的特点、对同一序列根据栈的特点进行不同入栈、出栈操作所得结果的判断;栈的实现的相关操作;2.顺序栈的4各要素和相关操作关键语句;链栈的4个要素和相关操作关键语句; 3.了解队列的特点和可执行的基本操作,并能做相关判断; 4.顺序循环队列的队空、队满判断条件,入队、出队操作的相关关键语句; 5.顺序循环队列中对同一序列根据队列进行不同的入队、出队操作后队头和队尾指针的变化判断。 第四章: 1.串的定义、串长的定义和计算、子串个数计算(注意区分:子串与非空且不同于S本身的子串); 2.串的模式匹配(区分BF算法和KMP算法),掌握使用KMP算法计算next数组的值,并且要求掌握匹配过程(BF和KMP的匹配过程不同!)。 前三章程序重点掌握作业四、作业五、作业六、作业八、作业九 第五章: 1.特殊矩阵的压缩存储地址计算,稀疏矩阵的压缩存储结构图。 2.广义表的定义、区分原子和子表,求表头和表尾,深度和层次计算,存储结构图绘制; 3.提供一广义表,写出通过head()和tail()操作求出某个原子的表达式。 4.注意:取表头时即广义表的第一个元素,外面不再加括号;而取表尾时,要将除表头元素外的其他元素一起用圆括号括起来,即将原广义表去掉表头; 第七章:

数据结构课程设计报告

数据结构课程设计报告 题目:5 班级:计算机1102 学号:4111110030 姓名:陈越 指导老师:王新胜

一:需求分析 1.运行环境 TC 2.程序所需实现的功能 几种排序算法的演示,要求给出从初始开始时的每一趟的变化情况,并对各种排序算法性能作分析和比较: (1)直接插入排序; (2)折半插入排序; (3)冒泡排序; (4)简单选择排序; (5)快速排序; (6)堆排序; (7)归并排序. 二:设计说明 1.算法设计的思想 1)、直接插入排序 排序过程:整个排序过程为n-1趟插入,即先将序列中第1个记录看成是一个有序子序列,然后从第2个记录开始,逐个进行插入,直至整个序列有序。 2)、折半插入排序 排序过程:用折半查找方法确定插入位置的排序叫折半插入排序。 3)、冒泡排序

排序过程:将第一个记录的关键字与第二个记录的关键字进行比较,若为逆序r[1].key>r[2].key,则交换;然后比较第二个记录与第三个记录;依次类推,直至第n-1个记录和第n个记录比较为止——第一趟冒泡排序,结果关键字最大的记录被安置在最后一个记录上。对前n-1个记录进行第二趟冒泡排序,结果使关键字次大的记录被安置在第n-1个记录位置。重复上述过程,直到“在一趟排序过程中没有进行过交换记录的操作”为止 4)、简单选择排序 排序过程:首先通过n-1次关键字比较,从n个记录中找出关键字最小的记录,将它与第一个记录交换。再通过n-2次比较,从剩余的n-1个记录中找出关键字次小的记录,将它与第二个记录交换。重复上述操作,共进行n-1趟排序后,排序结束。 5)、快速排序 基本思想:通过一趟排序,将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录进行排序,以达到整个序列有序。 排序过程:对r[s……t]中记录进行一趟快速排序,附设两个指针i和j,设枢轴记录rp=r[s],x=rp.key。初始时令i=s,j=t。首先从j所指位置向前搜索第一个关键字小于x的记录,并和rp交换。再从i所指位置起向后搜索,找到第一个关键字大于x的记录,和rp交换。重复上述两步,直至i==j为止。再分别对两个子序列进行快速排序,直到每个子序列只含有一个记录为止。 6)、堆排序 排序过程:将无序序列建成一个堆,得到关键字最小(或最大)的记录;输

2019 北京理工大学 889《数据结构》 考试大纲

2019年北京理工大学889《数据结构》考试大纲 考试内容: 数据结构主要考查考生以下几个方面: 1.理解数据结构的基本概念;掌握数据的逻辑结构、存储结构及其差异,以及各种基本操作的实现。 2.掌握基本的数据处理原理和方法的基础上,能够对算法进行设计与分析。 3.能够选择合适的数据结构和方法进行问题求解。 应掌握的具体内容为: 一、线性表 (一)线性表的定义和基本操作 (二)线性表的实现 1.顺序存储结构 2.链式存储结构 3.线性表的应用 二、栈、队列和数组 (一)栈和队列的基本概念 (二)栈和队列的顺序存储结构 (三)栈和队列的链式存储结构 (四)栈和队列的应用 (五)特殊矩阵的压缩存储 三、树与二叉树 (一)树的概念 (二)二叉树 1.二叉树的定义及其主要特征 2.二叉树的顺序存储结构和链式存储结构 3.二叉树的遍历 4.线索二叉树的基本概念和构造 5.二叉排序树 6.平衡二叉树 (三)树、森林 1.书的存储结构 2.森林与二叉树的转换 3.树和森林的遍历 (四)树的应用 1.等价类问题 2.哈夫曼(Huffman)树和哈夫曼编码 四、图 (一)图的概念

(二)图的存储及基本操作 1.邻接矩阵法 2.邻接表法 (三)图的遍历 1.深度优先搜索 2.广度优先搜索 (四)图的基本应用及其复杂度分析 1.最小(代价)生成树 2.最短路径 3.拓扑排序 4.关键路径 五、查找 (一)查找的基本概念 (二)顺序查找法 (三)折半查找法 (四)B-树 (五)散列(Hash)表及其查找 (六)查找算法的分析及应用 六、内部排序 (一)排序的基本概念 (二)插入排序 1.直接插入排序 2.折半插入排序 (三)起泡排序(bubble sort) (四)简单选择排序 (五)希尔排序(shell sort) (六)快速排序 (七)堆排序 (八)二路归并排序(merge sort) (九)基数排序 (十)各种内部排序算法的比较 (十一)内部排序算法的应用 题型和分值 填空题20分、选择题30分、问答题70分、算法题30分 参考书目 数据结构(C语言版)严蔚敏吴伟民清华大学出版社

《数据结构》课程教学大纲

《数据结构》课程教学大纲 Data Structure 执笔人:编写日期: 一、课程基本信息 1. 课程编号: 2. 课程性质/类别:必修课 / 专业主干课 3. 学时/学分: 48 学时(另实验16学时) / 4 学分 4. 适用专业:计算机科学与技术、软件工程、网络工程、信息管理与信息系统等专业 二、课程教学目标及学生应达到的能力 数据结构课程是计算机相关专业的专业基础课、必修课程,主要介绍用计算机解决一系列问题特别是非数值信息处理问题时所用的各种组织数据的方法、存储数据结构的方法以及在各种结构上执行操作的算法。通过本课程的学习,要求学生掌握各种数据结构的特点、存储表示、运算方法以及在计算机科学中最基本的应用,培养、训练学生选用合适的数据结构和编写质量高、风格好的应用程序的能力,培养学生分析问题、解决问题的能力,并为后续课程的学习打下良好的理论基础和实践基础。 三、课程教学容与基本要求 (一)绪论( 3 学时) 1.主要容: (1)介绍什么是数据结构; (2)基本概念和术语: 数据、数据元素、数据对象,以及数据结构的定义、逻辑结构、物理结构(理解)数据类型、抽象数据类型; (3)抽象数据类型的表示与实现; (4)算法和算法分析: 算法的概念、算法设计的要求以及算法效率的度量。 2.基本要求 (1)了解学习数据结构的重要性; (2)掌握数据结构的定义及相关概念和术语; (3)了解抽象数据类型的定义、表示与实现方法; (4)理解算法的概念、特点并掌握度量其效率的基本方法。 3.自学容: 类C语言的书写规。 (二)线性表( 6 学时) 1.主要容: (1)线性表的抽象数据类型定义和相关概念:数据项、记录、文件等; (2)线性表顺序存储表示和基本操作的实现; (3)线性表的链式存储表示和基本操作的实现; (4)稀疏多项式的抽象数据类型定义、表示和加法的实现。

数据结构课程设计报告(完结)

《数据结构》课程设计手册 一、 栈的使用 (一)需求分析 本程序通过java 语言完成栈的构造,对堆栈的数据进行基本的存储操作。具体包括,数据的入栈、出栈、读取等。 入栈操作:要求用户从键盘出入要进栈的数值或字符,对栈满的情况作出提示。 出栈操作:删除栈顶元素,并将删除的数据或字符在运行结果中显示。对栈空的情况作出提示。 读取操作:在插入和删除的任意阶段都可讲栈中的元素读取出来,能够实现对栈中的数据元素个数进行统计。 (二)概要设计 1.为了实现上述程序功能,需要定义栈的数据类型有: static int MAX=5; static String[] item =new String[MAX]; static int top; 2.本程序包含4个函数 Push() 初始条件:栈未满 操作结果:往栈中插入数据; Pop() 初始条件:存在非空栈 操作结果:将栈中的数据删除; Get() 初始条件:存在非空栈 操作结果:显示非空栈中的所有元素; Main() 操作结果:调用以上函数。 程序流程图: Main() Pop() Push() Get()

(三)详细设计 具体代码见Stack.java 基本操作: Stack()构造一个空的栈,初始状态top的指针为-1; 入栈方法public static void push()。该方法中,首先判断是否栈满(top>=MAX-1),如果栈满,则输出提示语“栈满 ,栈中最多能容纳5个元素”,否则从键盘输入数据,并且top指针加1。 出栈方法public static void pop()。首先判断是否栈空(top<0),如果栈空,则输出提示信息“栈空 ,没有可操作的元素”,否则删除栈顶元素。Top指针减1。

相关主题
文本预览
相关文档 最新文档