数据结构6(4月28日)
《office高级应用》试题
《office高级应用》试题1、程序流程图中带有箭头的线段表示的是()。
A.图元关系B.数据流C.控制流D.调用关系2、结构化程序设计的基本原则不包括()。
A.多态性B.自顶向下C.模块化D.逐步求精3、软件设计中模块划分应遵循的准则是()。
A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合4、在软件开发中,需求分析阶段产生的主要文档是()。
A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集成测试计划5、算法的有穷性是指()。
A.算法程序的运行时间是有限的B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用6、对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是()。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序7、下列关于栈的叙述正确的是()。
A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据C.只能在栈底插入数据D.不能删除数据8、在数据库设计中,将E-R图转换成关系数据模型的过程属于()。
A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段9、在数据管理技术发展的三个阶段中,数据共享最好的是()。
A.人工管理阶段B.文件系统阶段C.数据库系统阶段D.三个阶段相同10、设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为()。
A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩11、世界上公认的第一台电子计算机诞生在()。
A.中国B.美国C.英国D.日本12、下列关于ASCⅡ编码的叙述中,正确的是()。
A.一个字符的标准ASCⅡ码占一个字节,其最高二进制位总为1B.所有大写英文字母的ASCⅡ码值都小于小写英文字母‘a’的ASCⅡ码值C.所有大写英文字母的ASCⅡ码值都大于小写英文字母‘a’的ASCⅡ码值D.标准ASCⅡ码表有256个不同的字符编码13、CPU主要技术性能指标有()。
数据结构C语言版-PPT课件
存储结构(物理结构)---运算(算法)
23
数据元素及其关系在计算机存储器中的存储方式。 是逻辑结构用计算机语言的实现,它依赖于计算机语言。
1.2 基本概念和术语
数据结构的三个方面: 线性结构
数据的逻辑结构 非线性结构 数据的存储结构
24
线性表 栈 队 树形结构
图形结构
顺序存储
链式存储
数据的运算:检索、排序、插入、删除、修改等
26
四个基本结构
•
集合 线性结构 树形结构
•
•
•
网状结构
27
线性结构
bin
dev
etc
lib
user
树形结构
树
3 1 2
2 5
二叉树
2
二叉排序树
1
9 3 6 3
1 13
4
6 7 8 9 10
4
7 8
5 9
6
8 5 7
10
11 12 13 14
11
28
堆结构
11
7 3 5 10 4 8
12 9 6
定义2----
22
按某种逻辑关系组织起来的一批数据(或称带结构 的数据元素的集合)应用计算机语言并按一定的存储 表示 方式把它们存储在计算机的存储器中,并在其上 定义了一个运算的集合。
1.2 基本概念和术语
数据结构的三个方面的含义:
逻辑结构--数据元素间抽象化的相互关系(简称为数据结构)。 与数据的存储无关,独立于计算机,它是从具体问题抽 象出来的数学模型。
按书名
S 0 1 L 0 1 S 0 1 S 0 2 … …
索引表
分类号: 高 等 数 学 0 0 1 , 0 0 3 … … 樊映川 出版单位: 理 论 力 学 0 0 2 , … … . . 华罗庚 出版时间: 线 性 代 数 0 0 4 , … … 栾汝书 价格: … …… … . .
计算机数据结构考研真题及其答案
第1章绪论一、选择题1. 算法的计算量的大小称为计算的();A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于();A.问题的规模 B. 待处理数据的初态 C. A和B3.计算机算法指的是(),它必须具备()这三个特性;(1)A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法(2)A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、安全性4.一个算法应该是();A.程序B.问题求解步骤的描述C.要满足五个基本特性D.A和C5. 下面关于算法说法错误的是();A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的6. 下面说法错误的是();(1)算法原地工作的含义是指不需要任何额外的辅助空间;(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法;(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界;(4)同一个算法,实现语言的级别越高,执行效率就越低A.(1) B.(1),(2) C.(1),(4) D.(3)7.从逻辑上可以把数据结构分为()两大类;A.动态结构、静态结构B.顺序结构、链式结构C.线性结构、非线性结构D.初等结构、构造型结构8.以下与数据的存储结构无关的术语是();A.循环队列 B. 链表 C. 哈希表 D. 栈9.以下数据结构中,哪一个是线性结构();A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串10.以下那一个术语与数据的存储结构无关();A.栈 B. 哈希表 C. 线索树 D. 双向链表11.在下面的程序段中,对x的赋值语句的频度为();FOR i:=1 TO n DOFOR j:=1 TO n DOx:=x+1;A.O(2n) B.O(n) C.O(n2) D.O(log2n)12.程序段FOR i:=n-1 DOWNTO 1 DOFOR j:=1 TO i DOIF A[j]>A[j+1]THEN A[j]与A[j+1]对换;其中n为正整数,则最后一行的语句频度在最坏情况下是();A. O(n)B. O(nlogn)C. O(n3)D. O(n2)13.以下哪个数据结构不是多型数据类型();A.栈B.广义表C.有向图D.字符串14.以下数据结构中,()是非线性数据结构;A.树B.字符串C.队D.栈15. 下列数据中,()是非线性数据结构;A.栈 B. 队列 C. 完全二叉树 D. 堆16.连续存储设计时,存储单元的地址();A.一定连续B.一定不连续C.不一定连续D.部分连续,部分不连续17.以下属于逻辑结构的是();A.顺序表 B. 哈希表 C.有序表 D. 单链表二、判断题1. 数据元素是数据的最小单位。
《数据结构》课程设计说明书
《数据结构》课程设计说明书设计题目:贪吃蛇的循环队列实现姓名:陈诚班级:计05-2班学号: 28指导教师:顾泽元 _一、设计题目游戏:《贪吃蛇》的队列实现.二、问题描述现有一个大小为Map_Long * Map_Width的方格地图(每一方格尺寸为BoxSize * BoxSize),在地图中间处有一个长度为3*3方格的小蛇。
一旦游戏开始后:地图上随机位置处生成一只大老鼠(占一个方格);小蛇自动朝着一个方向运动,并且用户可以通过按:上、下、左、右键改变小蛇的运动方向。
当小蛇吃到大老鼠,即蛇运动到它的蛇头所在坐标等于老鼠所在坐标时,小蛇长度增加1。
如此往复,随着小蛇变成了大蛇,游戏难度也随之增加,但当小蛇吃到自己身体或者头部撞到障碍物时,将扣去小蛇的生命值,直到小蛇生命为0,游戏失败。
若在游戏中,小蛇吃光所有的老鼠,则游戏胜利。
三、概要设计1、游戏地图以及游戏主要数据表示:MAP[Map_Long][Map_Width]-----将屏幕的某一块矩形区域划分成Map_Long * Map_Width(40*20)个格,定义地图数组MAP[Map_Long][Map_Width],用以存放如同地面、蛇身、老鼠、障碍物的信息。
ElemType---结构体类型,包含两个int变量,存放蛇一格身体的所在位置。
CirQueue---结构体类型,循环队列。
存放队列中,元素的地址以及队列头尾位置。
Snake------结构体类型,存放蛇的蛇头坐标、方向、生命值、蜕壳控制参数。
Food————结构体类型,存放小老鼠所在坐标、颜色等信息。
2、方案设计:(1)实现封面、界面绘制。
(2)实现读取地图的功能。
(3)实现蛇的方向控制以及游戏的暂停、速度设置、退出等功能。
(4)实现蛇的移动、长长。
(5)实现蛇的越界折返(运动到地图边界后,蛇从另一侧移出)。
(6)实现随机位置产生食物。
(7)实现读取地图的功能。
(8)实现撞到障碍物,扣除相应生命数值。
数据结构试卷B
浙江科技学院考试试卷浙江科技学院2010 -2011 学年第 2 学期考试试卷 B 卷考试科目 数据结构 考试方式 闭 卷 完成时限 120分钟 拟题人 审核人 批准人 年 月 日 理学 院 09 年级 信息与计算科学 专业一、是非题(每小题1分,共10分)正确的在括号内打√,错误的打×.( )1. 数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理.( )2. 数据结构是相互之间存在一种或多种关系的数据元素的集合,数据元素相互之间的关系称为结构.( )3. 对于抽象数据类型而言,不论其内部结构变化如何,只要它的数学特性不变,都不影响其外部的使用.( )4. 线性表的逻辑顺序与物理顺序总是一致的.( )5. 每种数据结构都应具备三种基本运算:插入、删除、搜索. ( )6. 空串与由空格组成的串没有区别. ( )7. 完全二叉树就是满二叉树.( )8. 已知一棵二叉树的前序序列和中序序列,则可以唯一地构造出该二叉树. ( )9. 带权连通图的最小生成树的权值之和一定小于它的其他生成树的权值之和. ( )10. 内部排序要求数据一定要以顺序方式存储.二、选择题(单项选择,每小题2分,共40分) 请将你认为正确的选项填入下表中。
专业班级 学号 姓名………………………………………………………………………装订线……………………………………………………………………………………1. 算法在发生非法操作时可以作出处理的特性称为().A. 正确性B. 易读性C.高效率 D. 健壮性2. 执行下面程序段时,执行S语句的次数为().for (int i = 1; i <= n; i ++)for (int j = 1; j <= i; j ++) S;A. 2nB. n/2C. n(n+1)D. n(n+1)/23. 数据结构的定义为(D, S),其中S是()的集合.A. 算法B. 数据元素C. 关系D. 逻辑结构4. 有六个元素按照6,5,4,3,2,1的顺序进栈,则下列()项不是合法的出栈序列.A. 5 4 3 6 1 2B. 4 5 3 1 2 6C. 3 4 6 5 2 1D. 2 3 4 1 5 65. 广义表A(a),则表尾为().A. aB. (())C. 空表D. (a)6. 二叉树中第4层上的结点最多为().A. 8B. 15C.16D. 327. 对右图所示二叉树,进行后序遍历的结果是().A. ABCDEFB. DBEAFCC. ABDECFD. DEBFCA8. 假设以行序为主序存储二维数组A = array[1..100,1..100]设每个数据元素占两个存储单元,基地址为10,则Loc[5,5]().A. 808B. 818C. 1010D. 10209. 具有35个结点的完全二叉树的深度为().A. 5B. 6C. 7D. 810. 若一棵二叉树具有9个度为2的结点,则该二叉树的度为0的结点个数是().A. 9B. 10C. 11D. 不确定11. 在有n个结点的二叉树的二叉链表表示中,空指针数为().A. 不定B. n+1C. nD. n-112. 具有n个结点的二叉树,拥有指向孩子结点的分支数目是().A. n-1B. nC. n+1D. 2n13. 在完全二叉树中,若一个结点是叶子结点,则它没有().A. 左孩子结点B. 右孩子结点C. 左孩子结点和右孩子结点D. 左孩子结点,右孩子结点和兄弟结点14. 有m个叶子结点的哈夫曼树,其结点总数是().A. 2m-1B. 2mC. 2m+1D. 2(m+1)15. 任何一个无向连通图的最小生成树().A. 只有一棵B. 有一棵或多棵C. 一定有多棵D. 可能不存在16. 下列查找方法中,()适合用于查找有序单链表.A. 顺序查找B. 二分查找C. 分块查找D. 哈希查找17. 在长度为100的有序线性表中进行顺序查找,最坏情况下需要比较的次数为().A. 99B.100C. 101D. 018. 对关键码序列28,16,32,12,60,2,5,72快速排序,若选28为枢轴记录关键字,则从小到大一次划分结果为().A. (2,5,12,16)28(60,32,72)B. (5,16,2,12)28(60,32,72)C. (2,16,12,5)28(60,32,72)D. (5,16,2,12)28(32,60,72)19. 下列排序算法中,()排序在一趟结束后不一定能选出一个元素放在其最终位置上.A. 选择B. 冒泡C. 归并D. 堆20. 一个序列中有10000个元素,若只想得到其中前10个最小元素,最好采用的排序方法是().A. 快速排序B. 堆排序C. 插入排序D. 二路归并排序三、填空题(每空1分,共15分)1. 在线性结构中,____________具有先进先出特性,___________具有先进后出特性.2. 有向图的存储结构有______________、_____________、_____________等方法.3. 具有10个顶点的连通图的深度优先生成树,其边数为_________________.4. 已知U = ’xyxyxyxxyxy’,t = ’xxy’,StrAssign(S, U),StrAssign(V, Substring(S, Index(s,t), StrLength(t)+1)),StrAssign(m,’ww’)求Replace(S, V, m)=___________________.5. 具有相同函数值的关键字对于哈希函数来说称作__________________.6. 已知一组待排序列的记录关键字初始排序为:56,34,58,26,79,52,64,37,28,84,57.若选中第一个记录关键字为枢轴记录,则一趟快速排序的结果为:_____________________;若建立大根堆,则初始堆为____________________.7. 由A, B, C, D, E五个结点构成的二叉树,共有_________种互不相似的结构.8. 长度为225的表,采用分块查找法,每块的最佳长度是______,应分为______块,若每块的长度为10,则平均查找长度为_________________.9. 快速排序在平均情况下的时间复杂度为_____________.四、应用题(共30分)1. (8分)已知一棵二叉树的中序序列和后序序列如下,求该二叉树的高度(假定空树的高度为-1)和度为2、度为1及度为0的的结点个数.中序序列:CBDEAGIHJF;后序序列:CEDBIJHGFA2. (7分)假设用于通信的电文仅由8种字符母{A,B,C,D,E,F,G,H}组成,它们在电文中出现的频率分别为{0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10}。
hw2
【输出样例】
14
【限制】
1 ≤ N ≤ 10^5,最后解的范围为[1, 2^31)。
【提示】
树的直径
2012 年春季学期
第 3 / 10 页
清华大学计算机系(c)版权所有
a2,1 a3,1 ... an-2,1 an-1,1
a3,2 ... an-2,2 an-1,2
... ... ...
an-2,n-3 an-1,n-3
an-1,n-2
其中 n = |V|为顶点总数,顶点从 0 到 n-1 编号; ai,j 表示顶点 i 和 j 之间有无联边,有则为 1,没有为 0。
【输入样例】
6 2 2 5 1 1 2 2 2 2 3 1 2 100 200 150 100 300 200
【输出样例】
200.00
【限制】
1 ≤ N < 10,000,000 1 ≤ X < 1,000 股市的营业期不超过 2^31 - 1 天
【提示】
在队列基础上扩充操作接口
2012 年春季学期
【输入】
第一行是正整数 N,表示村庄的总数,各村庄从 1 到 N 编号。 接下来的 N-1 行各有以空格分隔的三个整数,表示由一条贸易通道联通的两个村庄(的编号) , 以及 Donkey 在走这段路的时候会吃掉的草料的量。
【输出】
仅有一行,含一个整数,即 Shrek 所需背包的最小体积。
【输入样例】
【输入】
第一行含一个正整数 n,表示初始在墙上的 01 串总数。接下来的 n 行依次给出第 1~n 个 01 串。
2023年全国计算机二级考试时间
2023年全国计算机二级考试时间2023年全国计算机二级考试时间2023年全国计算机二级考试举办4次(3月、5月、9月、12月),时间分别为3月26日至28日(第64次)、5月28日至29日(第65次)、9月24日至26日(第66次)及12月3日至4日(第67次)。
其中3月和9月开考全部级别全部科目,5月和12月考试开考一、二级全部科目,各省级承办机构可根据实际情况决定是否开考5月和12月考试。
如因疫情原因导致不能正常开考,以教育部和各省教育考试院通知为准。
2023年暂停三级Linux应用与开发技术、四级Linux应用与开发工程师两个科目考试。
2023年9月起,新增二级openGauss数据库程序设计(科目代码68)。
自2023年起,NCRE将提供电子证书,所有符合取证条件的考生都将获得电子证书。
2023年为试点期,考生在报名时可同时申请纸质证书。
计算机一二三四级的区别内容和难度不同,从有一级到四级,依次增加。
一级:考核微型计算机基础知识和使用办公软件及因特网(Internet)的基本技能。
计算机基础及MSOffice应用、计算机基础及WPSOffice应用、计算机基础及Photoshop应用,一共三个科目。
二级:考核计算机基础知识和使用一种高级计算机语言或数据库管理软件编写程序以及上机调试的基本技能。
编程类:C、VisualBasic、C++、Java、Visual,数据库类:FoxPro、C++。
基础知识包括如下内容:数据结构与算法、程序设计方法、软件工程、数据库基础。
三级:分为PC技术、信息管理技术、数据库技术和网络技术四个类别。
PC 技术考核PC机硬件组成和Windows操作系统的基础知识以及PC机使用、管理、维护和应用开发的基本技能;信息管理技术考核计算机信息管理应用基础知识及管理信息系统项目和办公自动化系统项目开发、维护的基本技能;数据库技术考核数据库系统基础知识及数据库应用系统项目开发和维护的基本技能;网络技术考核计算机网络基础知识及计算机网络应用系统开发和管理的基本技能。
数据结构考试题目
数据结构考试题⽬数据结构49道题1. 数据结构是⼀门研究什么内容的学科?2. 数据元素之间的关系在计算机中有⼏种表⽰⽅法?各有什么特点?3. 数据类型和抽象数据类型是如何定义的。
⼆者有何相同和不同之处,抽象数据类型的主要特点是什么?使⽤抽象数据类型的主要好处是什么?5.评价⼀个好的算法,您是从哪⼏⽅⾯来考虑的?8.对于⼀个数据结构,⼀般包括哪三个⽅⾯的讨论?9. 当你为解决某⼀问题⽽选择数据结构时,应从哪些⽅⾯考虑?11.数据结构与数据类型有什么区别?15. 在编制管理通讯录的程序时, 什么样的数据结构合适? 为什么?18.设计⼀数据结构,⽤来表⽰某⼀银⾏储户的基本信息:账号、姓名、开户年⽉⽇、储蓄类型、存⼊累加数、利息、帐⾯总数。
19. 请在下列算法的横线上填⼊适当的语句。
FUNCTION inclusion(ha,hb:linklisttp):boolean;{以ha 和hb 为头指针的单链表分别表⽰有序表A 和B,本算法判别表A 是否包含在表B 内,若是,则返回“true”,否则返回“false”}BEGINpa:=ha^.next; pb:=hb^.next; (1) ;WHILE(2) DOIF pa^.data=pb^.data THEN(3) ELSE(4) ;(5)END;20.完善算法:已知单链表结点类型为:TYPE ptr=^node;node=RECORDdata:integer; next:ptrEND;过程create 建⽴以head 为头指针的单链表。
PROCEDURE create ( (1) );VAR p,q:ptr; k:integer;BEGINnew(head); q:=head;read(k);WHILE k>0 DOBEGIN(2); (3); (4); (5);read(k)END;q^.next:=NIL;END;22.假设链表p 和链表q 中的结点值都是整数,且按结点值的递增次序链接起来的带表头结点的环形链表。
杭州电子科技大学大二计算机专业数据结构试卷及答案
杭州电子科技大学学生考试卷〔A〕卷一.是非题1. 数据结构可用三元式表示〔D,S,P〕。
其中:D是数据对象,S是D上的关系,P是对D的根本操作集。
(f)2 简单地说,数据结构是带有结构的数据元素的集合。
(t)3 判断带头结点的非空循环单链表〔头指针为L〕中指针p所指结点是最后一个元素结点的条件是:p->next==L。
(t)4 线性表的链式存储结构具有可直接存取表中任一元素的优点。
(f)5 线性表的顺序存储结构优于链式存储结构。
(f)6. 在单链表P指针所指结点之后插入S结点的操作是:P->next= S ; S-> next = P->next;。
(f)7 对于插入、删除而言,线性表的链式存储优于顺序存储。
(t)8. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。
(f)9. 栈和队列是操作上受限制的线性表。
(t)10. 队列是与线性表完全不同的一种数据结构。
(f)11. 队列是一种操作受限的线性表,凡对数据元素的操作仅限一端进行。
(f)12. 栈和队列也是线性表。
如果需要,可对它们中的任一元素进行操作。
(f)13. 栈是限定仅在表头进行插入和表尾进行删除运算的线性表。
(f)14. 二叉树中每个结点有两个子结点,而对一般的树,则无此限制,所以,二叉树是树的特殊情形。
(f)15 二叉树是一棵结点的度最大为二的树。
(f)16 赫夫曼树中结点个数一定是奇数。
(t)17 在二叉树的中序遍历序列中,任意一个结点均处在其左孩子结点的后面。
(t)18 假设B是一棵树,B′是对应的二叉树。
则B的后根遍历相当于B′的后序遍历。
(f)19. 通常,二叉树的第i层上有2i-1个结点。
(f)20. 中序线索二叉树的优点是便于在中序下查找直接前驱结点和直接后继结点。
(t)21 二叉树的先序遍历序列中,任意一个结点均处在其孩子结点的前面。
(t)22 由树结点的先根序列和后根序列可以唯一地确定一棵树。
数据结构绪论练习题
数据结构绪论练习题题目1. 数据结构是一门研究什么内容的学科?【燕山大学 1999 二、1 (4分)】2. 数据元素之间的关系在计算机中有几种表示方法?各有什么特点?【燕山大学1999 二、2(4分)】3. 数据类型和抽象数据类型是如何定义的。
二者有何相同和不同之处,抽象数据类型的主要特点是什么?使用抽象数据类型的主要好处是什么?【北京邮电大学 1994 一(8分)】4. 回答问题(每题2分)【山东工业大学 1997 一(8分)】(1)在数据结构课程中,数据的逻辑结构,数据的存储结构及数据的运算之间存在着怎样的关系?(2)若逻辑结构相同但存储结构不同,则为不同的数据结构。
这样的说法对吗?举例说明之。
(3)在给定的逻辑结构及其存储表示上可以定义不同的运算集合,从而得到不同的数据结构。
这样说法对吗?举例说明之。
(4)评价各种不同数据结构的标准是什么?5.评价一个好的算法,您是从哪几方面来考虑的?【大连海事大学 1996 二、3 (2分)】【中山大学 1998 三、1 (5分)】6.解释和比较以下各组概念【华南师范大学 2000 一(10分)】(1)抽象数据类型及数据类型(2)数据结构、逻辑结构、存储结构(3)抽象数据类型【哈尔滨工业大学 2000 一、1(3分)】(4)算法的时间复杂性【河海大学 1998 一、2(3分)】(5)算法【吉林工业大学1999 一、1(2分)】(6)频度【吉林工业大学 1999 一、2(2分)】7. 根据数据元素之间的逻辑关系,一般有哪几类基本的数据结构?【北京科技大学 1998 一、1】【同济大学 1998】8.对于一个数据结构,一般包括哪三个方面的讨论?【北京科技大学 1999 一、1(2分)】9. 当你为解决某一问题而选择数据结构时,应从哪些方面考虑?【西安电子北京科技大学2000】10. 若将数据结构定义为一个二元组(D,R),说明符号D,R 应分别表示什么?【北京科技大学 2001 一、1(2分)】11.数据结构与数据类型有什么区别?【哈尔滨工业大学 2001 三、1(3分)】12.数据的存储结构由哪四种基本的存储方法实现?【山东科技大学2001 一、1(4分)】13.若有100个学生,每个学生有学号,姓名,平均成绩,采用什么样的数据结构最方便,写出这些结构?【山东师范大学 1996 二、2(2分)】14. 运算是数据结构的一个重要方面。
计算机软件基础之数据结构-排序
26
快速排序的过程为:把待排序区间按照第一个元素 (即基准元素)的排序码分为左右两个子序列的过程叫做 一次划分。设待排序序列为R[left]~R[right],其中left为 下限,right为上限,left<right,R[left]为该序列的基准元 素,为了实现一次划分,令i,j的初值分别为left和right。在 划分过程中,首先让j从它的初值开始,依次向前取值,并 将每一元素R[j]的排序码同R[left]的排序码进行比较,直到 R[j]<R[left]时,交换R[j]与R[left]的值,使排序码相对较 小的元素交换到左子序列,然后让i从i+1开始,依次向后 取值,并使每一元素R[i]的排序码同R[j]的排序码(此时 R[j]为基准元素)进行比较,直到R[i]>R[j]时,交换R[i] 与R[j]的值,使排序码大的元素交换到后面子区间;再接 着让j从j-1开始,依次向前取值,重复上述过程,直到i等 于j,即指向同一位置为止,此位置就是基准元素最终被存 放的位置。此次划分得到的前后两个待排序的子序列分别 2013年6月28日星期五 为R[left]~R[i-1]和R[i+1]~R[right]。
2013年6月28日星期五
19
3、希尔排序的效率分析 虽然我们给出的算法是三层循环, 最外层循环为log2n数量级,中间的for循 环是n数量级的,内循环远远低于n数量 级,因为当分组较多时,组内元素较少; 此循环次数少;当分组较少时,组内元 素增多,但已接近有序,循环次数并不 增加。因此,希尔排序的时间复杂性在O (nlog2n)和O(n2 )之间,大致为O (n1. 3)。
也可以说,将一组记录按某排序码递增或递减排 列的过程,称为排序。
2013年6月28日星期五 6
数据结构实验报告-无向图的邻接矩阵存储结构
数学与计算机学院课程设计说明书课程名称: 数据结构与算法课程设计课程代码: 6014389 题目: 无向图的邻接矩阵存储结构年级/专业/班: 2010级软件4班学生姓名: 吴超学号: 312010*********开始时间: 2011 年 12 月 9 日完成时间: 2011 年 12 月 30 日课程设计成绩:指导教师签名:年月日数据结构课程设计任务书学院名称:数学与计算机学院课程代码:__6014389______ 专业:软件工程年级:2010一、设计题目无向图的邻接矩阵存储结构二、主要内容图是无向带权图,对下列各题,要求写一算法实现。
1)能从键盘上输入各条边和边上的权值;2)构造图的邻接矩阵和顶点集。
3)输出图的各顶点和邻接矩阵4)插入一条边5)删除一条边6)求出各顶点的度7)判断该图是否是连通图,若是,返回1;否则返回0.8)使用深度遍历算法,输出遍历序列。
三、具体要求及应提交的材料用C/C++语言编程实现上述内容,对每个问题写出一个算法实现,并按数学与计算机学院对课程设计说明书规范化要求,写出课程设计说明书,并提交下列材料:1)课程设计说明书打印稿一份2)课程设计说明书电子稿一份;3)源程序电子文档一份。
四、主要技术路线提示用一维数组存放图的顶点信息,二维数组存放各边信息。
五、进度安排按教学计划规定,数据结构课程设计为2周,其进度及时间大致分配如下:六、推荐参考资料[1] 严蔚敏,吴伟民.数据结构.清华大学出版社出版。
[2] 严蔚敏,吴伟民. 数据结构题集(C语言版) .清华大学出版社.2003年5月。
[3]唐策善,李龙澎.数据结构(作C语言描述) .高等教育出版社.2001年9月[4] 朱战立.数据结构(C++语言描述)(第二版本).高等出版社出版.2004年4月[5]胡学钢.数据结构(C语言版) .高等教育出版社.2004年8月指导教师签名日期年月日系主任审核日期年月日目录引言 (7)1 需求分析 (7)1.1任务与分析 (7)1.2测试数据 (8)2 概要设计 (8)2.1 ADT描述 (8)2.2程序模块结构 (9)2.3各功能模块 (11)3详细设计 (11)3.1类的定义 (11)3.2 初始化 (12)3.3 图的构建操作 (13)3.4 输出操作 (13)3.5 get操作 (14)3.6 插入操作 (14)3.7 删除操作 (15)3.8 求顶点的度操作 (15)3.10 判断连通操作 (17)3.11 主函数 (17)4 调试分析 (17)4.1 测试数据 (20)4.2调试问题 (20)4.3 算法时间复杂度 (20)4.4 经验和心得体会 (21)5用户使用说明 (21)6测试结果 (21)6.1 创建图 (21)6.2插入节点 (22)6.3 深度优先遍历 (22)6.4 求各顶点的度 (22)6.5 输出图 (23)6.6 判断是否连通 (23)6.7 求边的权值 (24)6.8 插入边 (24)6.9 删除边 (25)结论 (26)致谢 (27)摘要随着计算机的普及,涉及计算机相关的科目也越来越普遍,其中数据结构是计算机专业重要的专业基础课程与核心课程之一,为适应我国计算机科学技术的发展和应用,学好数据结构非常必要,然而要掌握数据结构的知识非常难,所以对“数据结构”的课程设计比不可少。
数据结构2019年4月自考答案
数据结构2019年4月自考答案2019年4月高等教育自学考试全国统一命题考试数据结构(课程代码 02331)第一部分选择题一、单项选择题:本大题共15小题,每小题2分,共30分。
在每小题列出的备选项中只有一项是最符合题目要求的,请将其选出。
1.线性表是一种由n个数据元素组成的数据结构,n的取值是A.0或者任意一个正整数或者∞B.非负整数C.任意一个正整数或者∞D.某个正整数2.在一个单链表中,已知q所指结点是p所指结点的后继结点,若在p和q之间插入s所指结点,则正确的操作是A.s->next=p->next;p->next=s;B.s->next=q;p->next-s->next;C.q->next=s;s->next-p;D.p->next=s;s->next=p;3.下列选项中,不宜通过栈求解的问题是A.判断字符串是否是回文B.检验圆括号是否匹配C.不同数制之间进行转换D.图的广度优先搜索遍历4.设栈S的输入序列为1,2,3,4,5,则下列选项中不可能是s的输出序列的是A.2,3,4,1,5B.5,4,1,3,2C.2,3,1,4,5D.1,5,4,3,25.使用一个大小为6的数组保存循环队列Q。
若从Q中出队两个元素,并入队个元素,此时队尾rear 和队头front的值分别为2和4.则在执行这三个操作之前rear和font的值分别是A.0和3B.1和2C.2和5D.4和56.设二维数组M有3行4列,按行优先的方式存储,每个元素占6个存储单元。
第1个元素的存储地址为100,则M[2][2]的存储地址为A.135B.153C.160D.1657.设n阶方阵M是对称矩阵,采用压缩存储方式将M中的元素保存在一维数组B中,则下列选项中,正确的是A.保存M中的主对角线中的元素,B的元素个数是nB.保存M中上三角部分的元素,B的元素个数是n(n-1)/2C.保存M中上三角部分的元素,B的元素个数是n(n+1)2D.保存M中的全部元素,B的元素个数是2n8.已知完全二叉树T的第4层有5个叶结点,则T的结点个数最多是A.12B.20C.21D.369.在一棵非空二叉树的后序遍历序列中,所有列在根结点前面的是A.左子树中的部分结点B.右子树中的全部结点C.左右子树中的部分结点D.左右子树中的全部结点10.若对题10图所示的无向图进行深度优先搜索遍历,则下列选项中正确的遍历序列是A.h,c,a,b,d,e,g,fB.e,a,f,g,b,h,c,dC.d,b,c,a,h,e,f,gD.a,b,c,d,h,e,f,g11.对题11图所示的有向图进行拓扑排序。
数据结构复习题
数据结构复习题《数据结构》复习资料⼀、单项选择题1. 若需要利⽤形参直接访问实参,则应把形参变量说明为( B )参数。
A. 指针B. 引⽤C. 传值D. 常值2. 以下说法错误的是(C )。
A. 抽象数据类型具有封装性。
B. 抽象数据类型具有信息隐蔽性。
C. 使⽤抽象数据类型的⽤户可以⾃⼰定义对抽象数据类型中数据的各种操作。
D. 抽象数据类型的⼀个特点是使⽤与实现分离。
3. 设有⼀个n n的对称矩阵A,将其上三⾓部分按⾏存放在⼀个⼀维数组B中,A[0][0]存放于B[0]中,那么第i⾏的对⾓元素A[i][i]存放于B中(C)处。
A. (i+3)*i/2B. (i+1)*i/2C. (2n-i+1)*i/2D. (2n-i-1)*i/24. 已知单链表A长度为m,单链表B长度为n,若将B联接在A的末尾,其时间复杂度应为( C )。
A. O(1)B. O(m)C. O(n)D. O(m+n)5. 假定⼀个链式队列的队头和队尾指针分别为front和rear,则判断队空的条件为( D)。
A. front == rearB. front != NULLC. rear != NULLD. front == NULL6. 设有⼀个递归算法如下int fact(int n) { //n⼤于等于0if(n<=0) return 1;else return n*fact(n-1);}则计算fact(n)需要调⽤该函数的次数为( B )次。
A.n B.n+1 C.n+2 D.n-17. 在⼀棵⾼度为h(假定树根结点的层号为0)的完全⼆叉树中,所含结点个数不⼩于( D )。
A. 2h-1B. 2h+1C. 2h-1D. 2h8. ⼀棵树的⼴义表表⽰为a(b,c(e,f(g)),d),当⽤左⼦⼥-右兄弟链表表⽰时,右指针域⾮空的结点个数为( C )。
A 1B 2C 3D 49. 向具有n个结点的、结构均衡的⼆叉搜索树中插⼊⼀个元素的时间复杂度⼤致为( B)。
数据结构习题汇编09 第九章 排序 试题
数据结构课程(本科)第九章试题一、单项选择题1.若待排序对象序列在排序前已按其排序码递增顺序排列,则采用()方法比较次数最少。
A. 直接插入排序B. 快速排序C. 归并排序D. 直接选择排序2.如果只想得到1024个元素组成的序列中的前5个最小元素,那么用()方法最快。
A. 起泡排序B. 快速排序C. 直接选择排序D. 堆排序3.对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列施加同样的排序操作,直到子序列为空或只剩一个元素为止。
这样的排序方法是()。
A. 直接选择排序B. 直接插入排序C. 快速排序D. 起泡排序4.对5个不同的数据元素进行直接插入排序,最多需要进行()次比较?A. 8B. 10C. 15D. 255.如果输入序列是已经排好顺序的,则下列算法中()算法最快结束?A. 起泡排序B. 直接插入排序C. 直接选择排序D. 快速排序6.如果输入序列是已经排好顺序的,则下列算法中()算法最慢结束?A. 起泡排序B. 直接插入排序C. 直接选择排序D. 快速排序7.下列排序算法中()算法是不稳定的。
A. 起泡排序B. 直接插入排序C. 基数排序D. 快速排序8.假设某文件经过内部排序得到100个初始归并段,那么如果要求利用多路平衡归并在3 趟内完成排序,则应取的归并路数至少是()。
A. 3B. 4C. 5D. 69.采用任何基于排序码比较的算法,对5个互异的整数进行排序,至少需要()次比较。
A. 5B. 6C. 7D. 810.下列算法中()算法不具有这样的特性:对某些输入序列,可能不需要移动数据对象即可完成排序。
A. 起泡排序B. 希尔排序C. 快速排序D. 直接选择排序11.使用递归的归并排序算法时,为了保证排序过程的时间复杂度不超过O(nlog2n),必须做到()。
A. 每次序列的划分应该在线性时间内完成B. 每次归并的两个子序列长度接近C. 每次归并在线性时间内完成D. 以上全是12.在基于排序码比较的排序算法中,()算法的最坏情况下的时间复杂度不高于O(nlog2n)。
管理信息系统第六章习题
第六章管理信息系统第六章习题6。
1 单项选择题6。
1.1 表格分西图是( D )。
a。
数据流程调查使用的工具 b. 编程工具c。
系统设计工具 d. 管理业务调查使用的工具6.1.2 开发MIS的系统分析阶段的任务是(Aa。
完成新系统的逻辑设计 b. 完成新系统的功能分析c。
完成新系统的物理设计 d. 完成新系统的数据分析6。
1。
3 数据字典建立应从( B )阶段开始。
a。
系统设计b。
系统分析c。
系统实施d。
系统规划6.1。
4 对一个企业供户、存管理信息系统而言,( B )是外部实体。
a. 仓库b. 划科c. 供应科d.销售科6。
1.5 数据流( A )。
a. 也可以用来表示数据文件的存储操作b。
不可以用来表示数据文件的存储操作c。
必需流向外部实体d。
不应该仅是一项数据6.1.6 管理业务流程图可用来描述( C )a。
处理功能b。
数据流程 c. 作业顺序 d. 功能结构6.1.7 管理信息系统的开发过程不包含( A )a. 设备设计过程b。
学习过程 c. 人与人之间的对话过程d. 通过改革管理制度来适应信息系统的需要6。
1.8 决策树和决策表用来描述(Aa。
逻辑判断功能 b. 决策过程c。
数据流程d。
功能关系6.1。
9 表格分配图是系统分析阶段用来描述( A )的。
a。
管理业务流程的图表 b. 数据流程的图表c. 功能结构的图表d。
数据处理方式的图表6。
1.10 工资系统中职工的“电费”数据(每月按表计费)具有( Ca。
固定值属性 b. 随机变动属性c。
固定个体变动属性d。
静态特性属性6.1.11 数据流程图是描述信息系统的( Ca. 物理模型的主要工具b。
优化模型的主要工具c。
逻辑模型的主要工具d。
决策模型的主要工具6.1。
12 在系统设计阶段,图6。
1中的四种符号用于绘制( A )a. 数据流程图b。
处理流程图c. 信息系统流程图d。
表格分配图图6。
1 四种符号6.1。
13 描述数据流程图的基本元素包括:( D )a. 数据流,内部实体,处理功能,数据存储b。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对半查找成功时比较 次数最多为log 次数最多为log2n+1
**分块查找(索引顺序查找) **分块查找(索引顺序查找) 分块查找
“分块有序”表特点: 分块有序”表特点: 块中数据不必有序 块间有序 (1) 表中数据分块 (2) 块中数据不必有序 (3) 块间有序 “分块有序”表的结构有两部分: 分块有序”表的结构有两部分: (1) 顺序存储结构的线性表 索引表(由每块的最大元素组成) (2) 索引表(由每块的最大元素组成) 分块查找过程: 分块查找过程: 用对半查找法查找索引表,确定待查项x 所在的块。 (1) 用对半查找法查找索引表,确定待查项x 所在的块。 (2) 在相应的块中用顺序查找法查找待查项x。 在相应的块中用顺序查找法查找待查项x
12
37
30
40
80
3、 创建二叉排序树
通过在初始为空的树中不断插入数k来建立二叉排序树,步骤: 通过在初始为空的树中不断插入数k来建立二叉排序树,步骤: (1)若二叉排序树为空,则插入结点应为根结点 若二叉排序树为空, (2)若二叉排序树非空,根据关键字比较的结果确定是在左 若二叉排序树非空, 子树还是在右子树中继续查找插入位置, 子树还是在右子树中继续查找插入位置,直至某个结点的 左子树或右子树空为止,则插入结点应为该结点的左孩子 左子树或右子树空为止, 或右孩子。 或右孩子。
2.6.1 顺序查找法
基本思想是:从数组的第一个元素开始, 基本思想是:从数组的第一个元素开始,与查找的关键字 逐个比对, 逐个比对,直到找到关键字所在的位置或遇到数组的结尾 为止,若找到,则返回关键字在数组中的位置,否则返回为止,若找到,则返回关键字在数组中的位置,否则返回1(因为C#的数组下标不可能为-1)。 1(因为C#的数组下标不可能为-1)。 因为C#的数组下标不可能为 假设每个元素等概 public int search(int keyValue) 率查找, 率查找,则平均查 { int i=0; ; 找次数为(n+1)/2 找次数为(n+1)/2 while( i<length && data[i]!=keyValue ) i++; if( i<length ) return(i); else return(-1); }
二叉排序树示例: 二叉排序树示例:
5 2 1 3 4 7 6 8 9
中序遍历序列: 中序遍历序列:1序树代码表示: 二叉排序树代码表示: //TreeNode类 //TreeNode类 public class TreeNode { public char data; public TreeNode leftChild; public TreeNode rightChild; public TreeNode(char c) { data = c; leftChild = null; rightChild = null; } } //BiTree类 //BiTree类 public class BiTree { private TreeNode root; public BiTree() { root = null; } public void insBTree(char k) //二叉排序树创建 { //二叉排序树创建 }
假设一组数据元素的关键字序列如下: 假设一组数据元素的关键字序列如下: {45,24,53,12,37,93,30,40, {45,24,53,12,37,93,30,40,80}
分析查找元素40 分析查找元素40
P1 45 P2 24 P3 95 53 P4
如何创建二叉排序树? 如何创建二叉排序树?
2.6 查找
查找: 查找: 根据给定的关键字值,在一组数据元素中确定一个其关键 根据给定的关键字值,在一组数据元素中确定一个其关键 值等于给定值的数据元素的过程。若存在这样的数据元素, 字值等于给定值的数据元素的过程。若存在这样的数据元素, 则称查找成功;若不存在这样的数据元素,则称查找失败。 则称查找成功;若不存在这样的数据元素,则称查找失败。 关键字: 关键字: 指数据元素中可以标识该数据元素的一组数据项。 指数据元素中可以标识该数据元素的一组数据项。例如学 生记录中的学号;公民记录中的身份证号码等。 生记录中的学号;公民记录中的身份证号码等。 查找表: 查找表: 指一组待查数据元素的集合。它具有一定存储结构, 指一组待查数据元素的集合。它具有一定存储结构,如顺 序表结构、链式结构、树形结构等。 序表结构、链式结构、树形结构等。
2.6.2 对半查找法
以顺序方式存放的有序表的查找可采用对半查找。 顺序方式存放的有序表的查找可采用对半查找。 存放的有序表的查找可采用对半查找 将被查关键字k与线性表中间位置mid上的数据元素的关键字进 将被查关键字k与线性表中间位置mid上的数据元素的关键字进 mid 行比较: 假设表按由小到大顺序排列) 行比较: (假设表按由小到大顺序排列) =a[mid],则查找成功,过程结束。 (1)若k= =a[mid],则查找成功,过程结束。 (2)若k>a[mid], 则取表的后半部分作为新表再去查找。 则取表的后半部分作为新表再去查找。 则取表的前半部分作为新表再进行查找。 (3)若k<a[mid], 则取表的前半部分作为新表再进行查找。 这个过程一直进行到查找成功或子表的长度为 为止。 这个过程一直进行到查找成功或子表的长度为0为止。 对半查找是基于关键字比较的最优方法。 对半查找是基于关键字比较的最优方法。
∑PC
i=1 i
i
其中: 为查找第i个数据元素的概率; 为查找到第i 其中:Pi为查找第i个数据元素的概率;Ci为查找到第i个数 据元素时,需进行的比较次数。 据元素时,需进行的比较次数。
**查找方法分类 **查找方法分类 线性查找法 • 顺序查找法 • 对半查找法 • 分块查找法 分块查找法… 基于树的查找法 • 二叉排序树 • B树 … 计算式查找法——哈希法 哈希法 计算式查找法 散列存储的查找方法 链式存储的查找方法 顺序存储的查找方法
public TreeNode banSearch(char k)
//二叉排序查找方法 { //二叉排序查找方法 } }
2、查找算法及实现
在给定的二叉排序树t中查找给定待查关键字k 在给定的二叉排序树t中查找给定待查关键字k: 从根结点出发 (1)如果树t为空,那么查找失败。算法结束;否则,转(2) 如果树t为空,那么查找失败。算法结束;否则, (2)如果t.data等于k,则查找成功。算法结束。否则转(3) 如果t.data等于k 则查找成功。算法结束。否则转( t.data等于 (3)如果k<t.data,则t=t.leftchild(到左子树查找), 如果k<t.data, t=t.leftchild(到左子树查找) k<t.data 到左子树查找 (1);否则 到右子树查找), ),转 转(1);否则 t=t.rightchild (到右子树查找),转(1)。
public int binSearch(int keyValue) { int low,high,mid; low=0; high=length-1; while ( low<=high ) { mid=(low+high)/2; if (data[mid] == keyValue ) return(mid) ; else if(data[mid] < keyValue) low=mid+1 ; else high=mid-1 ; } return(-1); }
2.6.3 二叉排序树及查找
若线性表中的结点经常插入和删除, 若线性表中的结点经常插入和删除,就应设计成把链表和二 分法结合的查找方法。 分法结合的查找方法。 二叉排序树是将线形表中的元素组织成二叉树的形式, 二叉排序树是将线形表中的元素组织成二叉树的形式,以达 到与对半查找相同的查找效率。 到与对半查找相同的查找效率。 1、二叉排序树定义: 二叉排序树定义: (1)若它的左子树不空,则左子树上所有的关键字均小于它 的 若它的左子树不空, 根结点的关键字; 根结点的关键字; (2)若它的右子树不空,则右子树上所有的关键字均大于或 等 若它的右子树不空, 于它的根结点的关键字; 于它的根结点的关键字; (3)它的左、右子树也是二叉排序树。 它的左、右子树也是二叉排序树。 如果按中序遍历二叉排序树,可得到一个递增排列的序列。 如果按中序遍历二叉排序树,可得到一个递增排列的序列。
public TreeNode banSearch(char k) { TreeNode p = root; while ( (p != null) && (p.data != k) ) { if (p.data > k) p = p.leftChild ; else p = p.rightChild ; } return (p); }
1) 查找的方法 查找某个数据元素依赖于查找表中数据元素的组织方式。 查找某个数据元素依赖于查找表中数据元素的组织方式。按照 数据元素的组织方式决定采用某种查找方法;反之, 数据元素的组织方式决定采用某种查找方法;反之,为了提高查找 方法的效率,又要求数据元素采用某些特殊的组织方式。因此, 方法的效率,又要求数据元素采用某些特殊的组织方式。因此,在 研究各种查找方法时,必须弄清各种查找方法所适用的组织方式。 研究各种查找方法时,必须弄清各种查找方法所适用的组织方式。 2) 查找算法的评价 衡量一个算法的标准主要有两个:时间复杂度和空间复杂度。 衡量一个算法的标准主要有两个:时间复杂度和空间复杂度。 而在查找算法中,基本运算是给定值与关键字值的比较, 而在查找算法中,基本运算是给定值与关键字值的比较,即算法的 主要时间是花费在“比较”上的,所以, 平均查找长度作为评价 主要时间是花费在“比较”上的,所以,用平均查找长度作为评价 查 找算法好坏的依据。 找算法好坏的依据。 对于含有n个数据元素的查找表, 对于含有n个数据元素的查找表,查找成功的平均查找长度为 n ASL=