当前位置:文档之家› 数据结构

数据结构

数据结构
数据结构

数据结构课程设计报告
课程设计题目:5.排序算法比较
专 班 姓 学
业:软件工程 级:1121806 名:辛陈 号: 201120180635
指导教师: 邹国华 2013 年 01 月 09 日

目录
1-----------------------------问题描述
2-----------------------------使用工具软件
3-----------------------------课程设计分析
4-----------------------------程序代码
5-----------------------------运行结果
6---------------------------- 课程设计中目前存在问题
7---------------------------- 自我感受

排序算法的比较
1.问题描述
课程设计题五:排序算法比较 一、 设计目的 1. 掌握各种排序的基本思想。 2. 掌握各种排序方法的算法实现。 3. 掌握各种排序方法的优劣分析及花费的时间的计算。 4. 掌握各种排序方法所适应的不同场合。 二、 设计内容和要求 利用随机函数产生 30000 个随机整数,利用插入排序、起泡排序、选择排序、快速排序、堆 排序、归并排序等排序方法进行排序,并统计每一种排序上机所花费的时间。
2 使用工具软件
Microsoft Visual C++ 6.0
3 课程设计分析
3.1 课程设计内容
掌握各种排序算法(直接插入排序、冒泡排序、快速排序、简单选择排序) 的思路核比较他们之间的优劣。
3.2 课程设计思想
程序设计的总体思路:首先构建 main()函数,根据题目的要求,再分 别构建四个排序函数:冒泡排序函数(long Bubblesort(long R[], long n)) 、 选择排序函数(long selectsort(long R[],long n)) 、直接插入排序函数(long insertsort(long R[], long n) ) 和 快 速 排 序 函 数 ( void QuickSort(long R[],long n)) 。为了使程序具有可读性和层次感,建立一个导航函数(void DaoHang()) 和操作函数 (void operate(long a[], long n)) 其中, , void DaoHang() 用来告知用户程序的操作流程,void operate(long a[], long n)用来接收用户 不同的选择,从而调用其它函数。

3.3 程序分析
3.3.1 存储结构 顺序存储结构(如图 1) 示意图 a0 a1 a2 图1 3.3.2 关键算法分析 关键算法 1 实现四种算法的基本排序功能 1.冒泡排序:两两比较相邻记录的关键码,如果反序则交换,直到没有反序 记录为止。 实现过程(如图 2) 。 对于数组(21 25 49 16 08) 。 初态: 21 第一趟: 21 第二趟: 21 第三趟: 16 第四趟: 08 16 21
图2
a3
a4
25
49
16
08
25
16
08
49
16
08
25
49
08
21
25
49
25
49
2.选择排序:从待排序的记录序列中选择关键码最小(或最大)的记录并将 它与序列中的第一个记录交换位置; 然后从不包括第一个位置上的记录序列中选 择关键码最小(或最大)的记录并将它与序列中的第二个记录交换位置;如此重 复,直到序列中只剩下一个记录为止。 实现过程(如图 3) 。 对于数组(21 25 49 16 08) 。 初态:

21 第一趟: 08 第二趟: 08 第三趟: 08
25
49
16
08
25
49
16
21
16
49
25
21
16
21
图3
25
49
3. 直接插入排序: 依次将待排序的序列中的每一个记录插入到先前排序好的 序列中,直到全部记录排序完毕。 实现过程(如图 4) 。 对于数组(21 25 49 16 08) 。 初态: 21 第一趟: 21 第二趟: 21 第三趟: 21 第四趟: 16 第五趟: 08 16 21
图4
25
49
16
08
25
49
16
08
25
49
16
08
25
49
16
08
21
25
49
08
25
49
4.快速排序:首先选择一个基准,将记录分割为两部分,左支小于或等于基 准,右支则大于基准,然后对两部分重复上述过程,直至整个序列排序完成。 实现过程(如图 5) 对于数组(21 25 49 16 08) 。 初态: R[0]=21 21 low 25 49 16 08 high

第一趟: R[0]=21 08 25 low R[0]=21 08 25 low R[0]=21 08 16 low R[0]=21 08 16 49
low high
49
16
08 high
49
16
25
high
49
16
25
16
high
25
R[0]=21 08 16
low
49
high
49
25
R[0]=21 low=high 08 关键算法二 获取当前系统时间,精确到毫秒,分别在代码运行前后调用记录前后时间, 再相减即可得到代码运行时间。 //以冒泡排序为例 start=(double)clock();//开始 Bubblesort(R, n); end=(double)clock();//结束 Time = (double)(end-start)/CLK_TCK;//相减,精确到毫秒 16 21
图5
49
25

关键算法三: 实现手动与计算机随机双重输入。手动输入检查程序的正确性,计算机随即 输入,可以比较各排序算法的性能。 void Rand()//随机数函数 void HandInput()//手动输入函数 关键算法四 纠错功能。在用户输入非法数据时,给予警告,并要求用户重新输入,不必 重启程序。 3.3.3 时间复杂度与空间复杂度: 理论分析可以得出各种排序算法的时间复杂度和空间复杂度,如下表所示 (图6) :
图6
排序方法
平均情况
最好情况
最坏情况
辅助空间
直接插入排序
O(n2)
O(n)
O(n2)
O(1)
起泡排序
O(n2)
O (n)
O(n2)
O(1)
快速排序
O(nlog2n)
O(nlog2n)
O(n2)
O(log2n) ~O(n)
简单选择排序
O(n2)
O(n2)
O(n2)
O(1)
3.3.4 选择排序算法的依据 影响排序的因素有很多, 平均时间复杂度低的算法并不一定就是最优的。相 反,有时平均时间复杂度高的算法可能更适合某些特殊情况。同时,选择算法还 得考虑它的可读性, 以利于软件的维护。 一般而言, 需要考虑的因素有以下4 点: ? 待排序的记录数目n 的大小。 ? 记录本身数据量的大小,也就是记录中除关键字外的其他信息量的 大小。 ? 关键字的结构及其分布情况。 ? 对排序稳定性的要求。

3.4 程序流程图
main()
输入错误
判断手动还是随 机输入(1,2)?
2 1
HandInput() (手动输入)
Rand(); (随机输入)
cin>>a[i] ;//数据存储
void DaoHang()
void operate()
输入错误
选择排序 方法 输入 0
输入 a
输入排序方法 结束 Void print()
图7

4 程序代码:
#include #include #include #include #include #define MAX 30000 using namespace std; void print(long R[],long n) { for(int i=1;i<=n;i++) cout<1) { long lastExchangeIndex=1;//表示已经有序 for(long j=1;j

return BT; } //选择排序 long SelectMinKey(long R[],long i,long n) { long temp=i; for(int j=i;j<=n;j++) { if(R[temp]>R[j]) { temp=j; //ST++; } } return temp; } long selectsort(long R[],long n) { long j,i,t; long y=1; int ST=0; for( i=1;i

} //直接插入排序 long insertsort(long R[], long n) { long y=1; long IT=0,j; for(long i=2;i<=n;++i) { if(R[i]=pivotkey) -- high;

R[low] = R[high]; QT=QT+1; while (low

long degree; char ch; cout << "请选择排序算法:\t"; cin >> ch; switch(ch){ case '1': { cout<<'\n'; cout<<"\t==您选择的是冒泡排序=="<<'\n'; for(int i = 1; i <=n; i ++) { R[i] = a[i]; } start=(double)clock(); degree = Bubblesort(R, n); end=(double)clock(); Time = (double)(end-start)/CLK_TCK; //print(R,n); cout << '\n'; cout << "冒泡排序所用时间:\t" << Time << '\n'; cout << "冒泡排序交换次数:\t" << degree << '\n'; cout<<'\n'; operate(a, n); break; } case '2': { cout<<'\n'; cout<<"\t==您选择的是选择排序=="<<'\n'; for(int i = 1; i <= n; i ++) { R[i] = a[i]; } start=(double)clock(); degree = selectsort(R, n); end=(double)clock(); Time = (double)(end-start)/CLK_TCK; //print(R,n); cout<<'\n'; cout << "选择排序所用时间:\t" << Time << '\n'; cout << "选择排序交换次数:\t" << degree << '\n'; cout << '\n'; operate(a, n); break;

} case '3': { cout<<'\n'; cout<<"\t==您选择的是直接插入排序=="<<'\n'; for(int i=1; i<=n; i ++) { R[i] = a[i]; } start=(double)clock(); degree = insertsort(R, n); end=(double)clock(); Time = (double)(end-start)/CLK_TCK; //print(R,n); cout<<'\n'; cout << "直接插入排序所用时间: " << Time<< '\n'; cout << "直接插入排序交换次数: " << degree << '\n'; cout << '\n'; operate(a, n); break; } case '4': { cout<<'\n'; cout<<"\t==您选择的是快速排序=="<<'\n'; for(int i=1; i<=n; i ++) { R[i] = a[i]; } start=(double)clock(); QuickSort(R, n); end=(double)clock(); Time = (double)(end-start)/CLK_TCK; cout<<'\n'; cout << "快速排序所用时间:\t" << Time << '\n'; cout << "快速排序交换次数:\t" << QT << '\n'; cout << '\n'; operate(a, n); break; } case 'a': { main();

break; } default: { cout << "输入错误,请选择正确的操作!" << '\n'; operate(a, n); break; } case '0': { cout<<"您已选择退出程序,谢谢使用"<<'\n'; break; } } } //导航菜单函数 void DaoHang() { cout<<"\n** 排序算法比较 **"<> n; cout << endl; long *a = new long [n]; srand((unsigned long)time(NULL)); for (long i=1; i<=n; i++) { a[i] = rand() % n;//n 为最大值,其随机域为 0~n-1 } DaoHang(); print(a,n);

operate(a, n); } //手动输入函数 void HandInput() { cout<<"请输入数据个数:"<>x; switch(x) { case 2:{ Rand(); break; } case 1:{ HandInput(); break; } default: cout<<"输入错误,请重新输入!"<

5 运行结果
5.1 当手动输入五个数据时,运行结果(如图 8)
图8

5.2 当选择随机数时,运行结果(如图 9)
图9
图 10

6 课程设计中目前存在问题
1.交换次数统计不够精确。 2.无论时间还是移动次数,应该有一个对比结果,不能只是罗列出来。 3.对于快速排序,存在两个问题。其一,不能两边同时进行排序,使得排序趟 数增加;其二,没能格式化输出,使得输出不清晰,不美观。
7 自我感受
程序的优化是一个艰辛的过程,如果只是实现一般的功能,将变得容易很多,当 加上优化,不论是效率还是结构优化,都需要精心设计。这次做优化的过程中, 遇到不少阻力。因而以后要多花力气学习 C++编程语言,必须要加强这方面的 训练, 这样才能在将编程思想和数据结构转换为代码的时候能得心应手。这次课 设通过在网上查阅大量资料、 程序以及一些学术论文,很好的对内排序算法进行 了研究,特别对数据结构这门课所学到的内容付诸于实践,加深了理解。另外, 还学到了一写别的方面的知识。 这次课设做还有许多没有考虑周到的地方,希望老师指出。

硬盘数据组织结构

EBR,叫做扩展MBR(Extended MBR),位于硬盘的某柱面0磁道1扇区 1.簇(cluster) 是DOS给文件系统分配磁盘空间的最小单位。由若干连续的逻辑扇区组成,不同的盘,簇的大小不同,簇是从2开始编号,见表6-1。 逻辑扇区号=(簇号-2)×扇区数/簇+数据区首扇区号 2.BOOT记录: 第一部分:0~2字节为跳转指令,转向启动码区。 第二部分:3~10字节为厂商标识字段,如MSDOS5.0。 第三部分:11~61字节为磁盘参数表(51字节)。 第四部分:62~509字节为启动程序(438字节)。 最后:55,AA字节。 51字节BPB表(BIOS Parameter Block) OB-OC:每扇区字节数(512) OD:扇区数/簇 0E-0F:保留扇区(指Boot区) 10:FAT个数 11-12:根目录最大登记项数 13-14:本分区扇区总数(小于32M的分区,大于32MB时,为0) 15:介质描述符 16-17:每个FAT扇区数 18-19:每道扇区数 1A-1B:磁头数 1C-1F:本分区前的扇区数(隐含扇区,即从0(X)柱0头1扇到0(X)柱1头1扇之间的扇区,由于不能为DOS访问,故称为隐含扇区)。 20-23:大容量盘总扇区数。 24:BIOS设备号(hex:HD=8x) 25:未使用 26:扩展引导标记(29H) 27-2A:卷序列号(随机) 2B-35:卷标,分区标识,如:WIN98 36-3D:文件系统格式(FAT16) 3.FAT(文件配置表) FAT有两个,当第一个损坏时,为人工修复提供方便,DOS不会自动用第二个去修复第一个FAT,而DOS实际上没有用尽2个FAT占用的扇区,因为可作为他用。FAT登记盘上簇的使用情况,登记项有12位、16位和32位之分,下面以16位为例说明FAT的格式。 16位FAT格式: 簇号(表项) 0000H 0001H 0002H … NNNNH 类型保留簇使用簇 含义介质标志记录文件簇号链

广州大学专插本心得

本人是今年考上广州大学计算机专业的,说真的,专插本这条路并不好走,很辛苦!但是当你知道自己考上了,那感觉是相当激动的!! 2011年高考成绩揭晓,我就过了3A二分而已,那时候心情很沉重,只有3条路可以选择,第一是复读第二就是读3A尾的学校第三就是去打工,最后的抉择是报了中山火炬技术学院(全省专科不知道是倒数第二还是倒数第三的学校) 2011年九月带着沉重的心情来到了中山火炬技术学院,这学校名气小的可怜,问了N多人都没人知道这学校,学校也小的可怕,十几分钟就可以走完,当时感觉自己很悲剧,上了这样的学校很没面子,因此痛下决心来不管怎么样要往上爬,从一个师兄那里听说可以插本,考到的话第一学历是本科,但是听说插本很难,比高考,考研究生还要难上百倍,便没怎么想插本了,还是专心学好大专的专业吧 一转眼,2年过去了,到了大三,很多同学都去实习了,我又一次走到人生十字路口上,是去工作还是去插本,经过几天考虑还是决定插本了,因为第一我觉的要进好的企业需要本科第二我不想那么快工作,那时候作出插本决定已经是9月底了,中山火炬技术学校插本的人很少,所以只好通过加插本QQ群来了解插本信息 因为本人不想给家庭负担所以没有参加任何培训班,刚开始复习全靠自己摸索着的,很痛苦,哪里是重点哪里不是重点都不知道,幸亏在进群之后知道考纲这回事,慢慢的走上了复习的正规道路,每天8点就起来看书,除开吃饭上厕所什么的离开一下教室其他都是在教室看书,一直看到晚上10点钟,回到宿舍继续看书,因为宿舍没人,所以看到2点左右才睡觉,每个星期抽出半天去放松,这样才能保证效率,那时候备考时候真是很无聊很痛苦,知道不少人都已经放弃了,但是还是坚持到最后,3月去广州考试,看见考广大计算机人400多人,心里有点怕怕的,但是马上调整好心态,心里说怕什么,大不了考不上去工作呢,在考试那2天就浏览一下书本和总结的考点,考完也不去想考试结果,因为没有什么意义了,四月八出成绩了,当时心里发毛了,因为说不担心那是假的,我是先要我舍友帮我查的,她说过了,我还是担心,最后自己鼓起勇气查的,当我点一下鼠标的那一刻眼睛是闭着的,闭了好久才敢看成绩。当时自己惊叫了起来:过了过了,战争终于结束了。自己也没想到会考的这么好,它见证了我几个月的付出是值得的好了,啰嗦了那么多,不知道说了这么多大家看了是什么心情,写的乱七八糟的,不过都是个人真实感受,现在就分享一下我各科复习经验吧 政治 这个是最恶心的科目,我用最多时间来备考这科,因为高中读的是理科,对它不感冒,但是考了67分,虽然不是很高分,但是我已经很满足了,现在谈谈这科复习方法,我10月开始看政治书的,一天一章的看,看到11月,看了大概四次书本,你会问为什么要看书,很简单,因为政治选择题很坑爹,不少题目是书本的,但是考纲没有的,12月开始之后,我就根据录音去划书,整理笔记,然后开始背,每个白天抽3小时背政治,然后晚上回宿舍打开电脑用 1小时选择题,培养做题感觉,到一月中,开始做历年真题,并把考过的大题给划掉,重点背那些没出的,没背熟的反复的背和默写,要是你学我这样做,我想政治可以个满意的分数。 英语

数据库概论 习题参考答案

第1章绪论习题参考答案 1、试述数据、数据库、数据库管理系统、数据库系统的概念。(参见P3、4、5页) 参考答案: 描述事物的符号记录称为数据;数据库是长期储存在计算机内的、有组织的、可共享的数据集合;数据库管理系统是位于用户与操作系统之间的一层数据管理软件; 数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。 2.使用数据库系统有什么好处?(参见P12页) 参考答案: 数据库系统使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的阶段,这样既便于数据的集中管理,又有利于应用程序的研制和维护,提高了数据的利用率和相容性,提高了决策的可靠性。 3.试述文件系统与数据库系统的区别和联系。(8、9、10页) 参考答案: 1)数据结构化是数据库与文件系统的根本区别。 在文件系统中,相互独立的文件的记录内部是有结构的,管其记录内部已有了某些结构,但记录之间没有联系。数据库系统实现整体数据的结构化,是数据库的主要特征之一。 2)在文件系统中,数据的最小存取单位是记录,粒度不能细到数据项。而在数据库系统中,存取数据的方式也很灵活,可以存取数据库中的某一个数据项、一组数据项一个记录或或一组记录。 3)文件系统中的文件是为某一特定应用服务的,文件的逻辑结构对该应用程序来说是优化的,因此要想对现有的数据再增加一些新的应用会很困难,系统不容易扩充。而在数据库系统中数据不再针对某一应用,而是面向全组织,具有整体的结构化。5.试述数据库系统的特点。(9、10、11页) 参考答案: 数据结构化;数据的共享性高、冗余度低、易扩充;数据独立性高;数据由DBMS统一管理和控制。 6.数据库管理系统的主要功能有哪些? (4页)

基于数据结构的学籍管理系统

《基于数据结构的学籍管理系统》 测试报告 院系: 专业:软件工程 班级: 学号: 姓名: 指导教师: 开课时间:/ 学年第学期 常熟理工学院计算机科学与工程学院制

目录 1 功能测试 (1) 1.1学生信息录入测试 (1) 1.2学生信息修改测试 (1) 1.3学生信息查询测试 (1) 1.4学生信息删除测试 (2) 1.5 界面按钮测试 (2) 2 单元测试 (2) 3 系统测试(GUI) (3) 4 软件缺陷 (6) 5 测试结论 (7)

1 功能测试 1.1学生信息录入测试 测试对象:功能 测试方面:界面 测试人: 测试时间: 问题: ①学号输入后,其他信息不填均可录入成功 ②学号能够输入数字,字母,标点等 ③姓名可以包含数字、标点符号等一些不应该出现的 ④年级中有字母、标点符号仍可通过检测 ⑤出生年月可以包含英文、符号等非法字符 处理结果:待定 1.2学生信息修改测试 测试对象:功能 测试方面:界面 测试人: 测试时间: 问题: ①只能通过学号来查找学生信息,不够人性化,应该使用多关键词搜索处理结果:待定 1.3学生信息查询测试 测试对象:功能 测试方面:界面 责任人: 测试人及测试时间:2015-5-4 问题: ①只能通过学号检索已存在的学生,应使关键词多样化 处理结果:待定

1.4学生信息删除测试 测试对象:功能 测试方面:界面 测试人:亚索 测试人及测试时间:2015-5-14 问题: ①只能通过学号检索删除 处理结果:待定 1.5 界面按钮测试 测试对象:功能 测试方面:界面 测试人:亚索 测试时间:2015-5-14 问题: ①信息录入界面:在点击“录入”按钮之后,虽然信息被成功录入,但并未有相应的“信息录入成功”来提示用户该学生信息已被录入成功。 ②修改、查询、删除界面都要通过学号来检索学生信息,这样显得查询方式过于单一。 ③在点击“录入修改”、“删除”、“查询”等按钮后出现的提示框信息都遮挡了原来窗体的信息,这样的设计有点不合理。 处理结果:待定 2 单元测试 使用JUnit单元测试工具对整个项目测试结果如下图所示: 在单独测试方法时,会遇到初始化问题,但并不是很严重:

《数据结构》(专科)已完成

数据结构,专科 一、简答题( 1、假设一个有向图的顶点集合V={c1,c2,c3,c4,c5},弧集 S={,,,,,}, (1)试根据上述关系,画出该有向图;(2)该图有环吗?若无 环,则写出它的一个拓扑有序序列;若有环,请写出组成环的顶点序列。 答: 2、已知某二叉树的先序序列为{ ABHFDECKG },中序序列为 { HBDFAEKCG }, 画出该二叉树。 答:二叉树是 a / \ b e / \ \

h f c / / \ d k g 后序是hdfbkgcea 3、已知关键字序列{70,83,100,65,10,9,7,32},现对其 从小到大排序,写出快速排序每一趟结束时的关键字状态。 答#include int main() { int i,j,t; int a[7]={70,83,100,65,10,32,7,9}; for(j=0;j<6;j++)//进行6次循环 for(i=0;i<6-j;i++)// 每次实现6-j次循环 if(a[i]>a[i+]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; }//每次a[i]与a[i+1]比较,大的就调换两者位置 for(i=0;i<7;i++) printf("%d ",a[i]); }

譬如第一次结果就是70,83,100,65,10,32,7,9 70比83小,所以位置没变。。 4、设s="I AM A WORKER",t=" GOOD",q=" WORKER"。求: StrLength(s),StrLength(t) ,SubString(s,8,6) , Index(s,q,1) 。 答:strlength(s)=14;strlength(t)=4;substr(s,8,6)=worker;substr(s,q,1)=o; 5、在单链表中设置头结点有什么作用? 答:头结点就是在单链表的开始结点之前附加的一个结点,设置头结点的优点有两个:(1)由于开始结点的位置被存放在头结点的指针域中,所以在链表的第一个位置上的操作就和在表的其他位置上一样,无须进行其他特殊处理;(2)无论链表是否为空,其头指针是指向头结点的非空指针(空表中头结点的指针域空),因此空表和非空表的处理也就一样了。 6、设哈希函数H(key)=key MOD 13,用线性探测再散列法解决 冲突。对关键字序列{ 55,19,01,68,23,27,20,84 } 在地址空间为0-10的散列区中建哈希表,画出此表,并求等 概率情况下查找成功时的平均查找长度。

基于C语言数据结构图书管理系统

计算机科学与技术专业课程设计任务书 1 需求分析 1本演示程序中,用户从键盘输入图书信息,图书编号,名称,类别,作者,出版社,价格,购买日期。 2演示程序以用户和计算机的对话方式执行,即在运行窗口出现提示信息,有用户从键盘录入,显示结果会在显示之后。 3程序执行的命令包括:查询图书信息,删除图书信息,对所有图书进行排序,

统计各种类的图书数目。显示所有图书信息 4 测试数据:2001 离散数学 X 左孝凌上海科学出版社 18.00 2009/6/8 2002 数据结构 B 严蔚敏清华大学出版社 30.00 2010/4/1 2 程序总体设计 (1)数据结构 依据输入的数据信息和数据格式,连表结点用结构体实现。采用链表方式存储,typedef:typedef struct //定义表示日期数据的结构体数据类型 { int month; int day; int year; } DATE; typedef struct Booktype //定义表示图书信息的结构体数据类型 { char id[10]; /* 图书编号*/ char name[40]; /* 图书名称*/ char type; /* 图书类型*/ char writer[10]; /* 图书作者*/ char publisher[20]; /* 图书出版社*/ float price; /* 图书价格*/ DA TE buydate; /* 图书购买日期*/ } Btype; typedef struct Booklist /* 定义表示所有图书信息的链表数据类型*/ { Btype *bk; struct Booklist *next; } Blist; (2)模块划分

专升本《数据结构》_试卷_答案

专升本《数据结构》 一、(共75题,共150分) 1. 数据的基本单位是()。(2分) A.数据元素 B.记录 C.数据对象 D.数据项 .标准答案:A 2. ()是数据的不可分割的最小单位。(2分) A.数据对象 B.数据元素 C.数据类型 D.数据项 .标准答案:D 3. 算法的空间复杂度是对算法()的度量。(2分) A.时间效率 B.空间效率 C.可读性 D.健壮性 .标准答案:B 4. ()是限制了数据元素的内部结构仅为一个字符的线性表。(2分) A.栈 B.队列 C.串 D.数组 .标准答案:B 5. 串的长度是指串中所含()的个数。(2分) A.不同字符 B.不同字母 C.相同字符 D.所有字符 .标准答案:D 6. 采用带头结点双向链表存储的线性表,在删除一个元素时,需要修改指针()次。(2分) A.1 B.2 C.3 D.4 .标准答案:B 7. 线性表的顺序存储结构是一种()的存储结构。(2分) A.顺序存取 B.随机存取 C.索引存取 D.Hash存取 .标准答案:B 8. 数组a[1..m]采用顺序存储,a[1]和a[m]地址分别为1024和1150,每个元素占2字节,则m是()。(2分) A.64 B.32 C.16 D.8 .标准答案:A 9. 深度为h的二叉树,第h层最多有()个结点。(2分) A.h B.2h-1 C.2h-1 D.2h .标准答案:C 10. m个结点的二叉树,其对应的二叉链表共有()个非空链域。(2分) A.m B.m+1 C.2m D.m-1 .标准答案:B 11. 下面叙述错误的是()。(2分) A.顺序表是借助物理单元相邻表示数据元素之间的逻辑关系 B.对于空队列进行出队操作过程中发生下溢现象 C.有向图的邻接矩阵一定是对称的 D.具有相同的叶子个数和具有相同的叶子权值的赫夫曼树不是唯一的 .标准答案:C 12. 以下与数据的存储结构无关的术语是()。(2分) A.循环队列 B.双向链表 C.哈希表 D.数组 .标准答案:D 13. 在一个长度为n的链式栈中出栈实现算法的时间复杂度为()。(2分) A.O(1) B.O(log n) C.O(n) D.O(n2) .标准答案:A 14. 在具有k个度数为2的二叉树中,必有()个叶子结点。(2分) A.k B.k-1 C.2k D.k+1 .标准答案:D 15. 在关键字序列(10,20,30,40,50)中,采用折半法查找20,关键字之间比较需要()次。(2分) A.1 B.2 C.3 D.4 .标准答案:C 16. 16某二叉树的后序遍历序列和和中序遍历序列均为abcd,该二叉树的前序遍历序列是()。(2分) A.abcd B.dcba C.acbd D.dbca .标准答案:B 17. n个顶点的无向连通图的生成树,至少有()个边。(2分) A.n(n-1) B.n(n-1)/2 C.2n D.n-1 .标准答案:D 18. 可以采用()这种数据结构,实现二叉树的层次遍历运算。(2分) A.队列 B.树 C.栈 D.集合 .标准答案:A

2017年中山大学南方学院专插本《数据结构与算法》考试大纲

本科插班生考试大纲《数据结构与算法》 《数据结构与算法》专业课程考试大纲 考试科目名称:数据结构与算法 一、考试性质 普通高等学校本科插班生招生考试是由专科毕业生参加的选拔性考试。高等学校根据考生的成绩,按已确定的招生计划,德、智、体全面衡量,择优录取。该考生所包含的内容将大致稳定,试题形式多种,具有对学生把握本课程程度的较强识别、区分能力。 二.考试内容及要求 一、考试基本要求 通过数据结构与算法理论的学习,使学生学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及相应的算法,并初步了解对算法的时间分析和空间分析技术;配合算法设计和上机实践的训练,还应培养学生的数据抽象能力和程序设计的能力,对理论和实践的操作使学生得到全面的领会和深刻的认识。 二、考核知识点及考核要求 本大纲的考核中,按照“识记”、“领会”、“简单应用”和“综合应用”等四个层次规定应达到的能力层次要求。各能力层次为递进等级关系,后者必须建立在前者的基础上,其含义是: 识记:要求考生知道有关的名词、概念、原理、知识的含义,并能正确认识或识别。 领会:要求在识记的基础上,能把握相关的基本概念、基本原理和基本方法,掌握有关概念、原理、方法的区别与联系。 简单应用:要求在领会的基础上,运用所掌握的基本概念、基本原理和基本方法中的少量知识点,分析和解决一般的理论问题或实际问题。 综合应用:要求在简单应用的基础上,运用学过的多个知识点,综合分析和解决比较复杂的实际问题。

第1章绪论 一、考核知识点 1、数据结构的基本概念 2、抽象数据类型的表示和实现 3、算法的概念和特性 4、算法时间复杂度和空间复杂度分析 二、考核要求 1、识记 (1)数据结构的研究内容 2、领会 (1)抽象数据类型的表示和实现 (2)算法的定义和特性 (3)评价算法优劣的基本标准 3、简单应用 (1)简单数据结构的程序设计 (2)简单数据结构程序的时间复杂度和空间复杂度分析 4、综合应用 (1)数据结构的一些基本概念 (2)算法的时间复杂度分析 第2章线性表 一、考核知识点 1、线性表的类型定义 2、线性表的顺序表示和实现 3、线性表的链式表示和实现 4、线性表的应用

广东技术师范学院2018年专插本《计算机科学技术导论》考试大纲

广东技术师范学院 《计算机科学技术导论》(本科插班生入学考试)考试大纲 (计算机科学学院制定) 一、考试性质与试题命题的原则 《计算机科学技术导论》是广东技术师范学院为计算机科学与技术等专业的本科 插班生入学考试所设置的一个专业课考试科目。它的评价标准是高等学校计算机类专 业高职高专毕业生或相近专业毕业生能达到的及格或及格以上水平,以保证录取的本 科插班生具有一定的计算机科学基础理论及必要的专业技能能力,以利于择优选拔。 考试对象为参加教育部面向全面招生的本科插班生入学考试的高职高专毕业生以及 具有同等学历的报考人员。 《计算机科学技术导论》课程考试的目的和要求是:准确、简明地考核考生对计算机科学体系框架、计算机科学基本知识以及现代计算机发展方向、主要理论和科学方法的掌握和理解水平,衡量他们在理解、掌握和运用这些基本专业理论和知识的基础上,观察、分析和解决技术问题的能力。 二、考试形式及试卷结构 1.考试形式为闭卷、笔试;考试时间为120分钟,试卷满分为100分。 2、试题命制的原则:作为一项选拔性考试,《计算机科学技术导论》考试试题在设计上应具有较高的信度和效度、必要的区分度和合理的难度。命题根据本大纲规定的考试目标和考核内容,考试命题应具有一定的覆盖面且重点突出,侧重考核考生对本学科的基本理论、基本知识和基本技能的掌握程度,以及运用所学的知识解决实际问题的能力。 3.试题对不同能力层次要求的分数比例:识记25%、理解55%,综合应用15%,其他5%。 4.合理安排试题的难度结构。试题难易度分为易、较易、较难、难四个等级。试卷中难易度试题的分布比例,易约占25%,较易约占35%,较难约占20%,难约占10%。 5.试卷的题型有:单项选择题、多项选择题、简答题、改错题、计算题、填空题、综合题等。可根据考核要求,适当安排各种题型数量的比例,达到考核对知识点的识记、理解以及运用水平和能力。

数据库的体系结构

数据库基础 ( 视频讲解:25分钟) 本章主要介绍数据库的相关概念,包括数据库系统的简介、数据库的体系结构、数据模型、常见关系数据库。通过本章的学习,读者应该掌握数据库系统、数据模型、数据库三级模式结构以及数据库规范化等概念,掌握常见的关系数据库。 通过阅读本章,您可以: 了解数据库技术的发展 掌握数据库系统的组成 掌握数据库的体系结构 熟悉数据模型 掌握常见的关系数据库 1 第 章

1.1 数据库系统简介 视频讲解:光盘\TM\lx\1\数据库系统简介.exe 数据库系统(DataBase System,DBS)是由数据库及其管理软件组成的系统,人们常把与数据库有关的硬件和软件系统称为数据库系统。 1.1.1 数据库技术的发展 数据库技术是应数据管理任务的需求而产生的,随着计算机技术的发展,对数据管理技术也不断地提出更高的要求,其先后经历了人工管理、文件系统、数据库系统等3个阶段,这3个阶段的特点分别如下所述。 (1)人工管理阶段 20世纪50年代中期以前,计算机主要用于科学计算。当时硬件和软件设备都很落后,数据基本依赖于人工管理,人工管理数据具有如下特点: ?数据不保存。 ?使用应用程序管理数据。 ?数据不共享。 ?数据不具有独立性。 (2)文件系统阶段 20世纪50年代后期到60年代中期,硬件和软件技术都有了进一步发展,出现了磁盘等存储设备和专门的数据管理软件即文件系统,文件系统具有如下特点: ?数据可以长期保存。 ?由文件系统管理数据。 ?共享性差,数据冗余大。 ?数据独立性差。 (3)数据库系统阶段 20世纪60年代后期以来,计算机应用于管理系统,而且规模越来越大,应用越来越广泛,数据量急剧增长,对共享功能的要求越来越强烈。这样使用文件系统管理数据已经不能满足要求,于是为了解决一系列问题,出现了数据库系统来统一管理数据。数据库系统满足了多用户、多应用共享数据的需求,它比文件系统具有明显的优点,标志着管理技术的飞跃。 1.1.2 数据库系统的组成 数据库系统是采用数据库技术的计算机系统,是由数据库(数据)、数据库管理系统(软件)、数

2019年本科插班生考试试题《数据结构》A试卷

韩山师范学院2019年本科插班生招生考试 计算机科学与技术 专业 数据结构 试卷(A 卷) 一、单项选择题(每题2分,共30分) 1. 由3个结点可以构造出多少种不同的二叉树?( ) A .2 B .3 C .4 D .5 2. 一个栈的输入序列为A B C ,则下列序列中不可能是栈的输出序列的是( )。 A. B C A B.C B A C. C A B D. A B C 3. 算法的时间复杂度取决于( ) 。 A .问题的规模 B .待处理数据的初态 C .计算机的配置 D .A 和B 4. 数组的逻辑结构不同于下列( )的逻辑结构。 A. 树 B. 栈 C. 队列 D. 线性表 5. 向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动的元素个数为( )。 A .8 B .63.5 C .63 D .7 6. 用邻接表表示图进行深度优先遍历时,通常借助( )来实现算法。 A .队列 B. 栈 C. 树 D .图 7. 数据的最小单位是( )。 A.数据元素 B.数据项 C.数据类型 D. 数据变量

8. 设无向图G中有n个顶点,则该无向图的最小生成树上有() 条边。 A. 2n B. 2n-1 C. n-1 D. n 9. 为解决计算机主机与打印机间速度不匹配问题,通常设一个打印数据缓冲区。主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是()。 A.栈 B.队列 C.线性表 D.有序表 10. 程序段s=i=0;do {i=i+1; s=s+i;}while(i<=n);的时间复杂 度为()。 n) C.O(n2) D.O(n3/2) A. O(n) B. O(nlog 2 11.设指针变量p指向单链表中结点A,若删除单链表中结点A,则需要修改指针的操作序列为()。 A. q=p->next;p->next=q->next;free(q); B. q=p->next;p->data=q->data;free(q); C. q=p->next;p->data=q->data;p->next=q->next;free(q); D. q=p->next;q->data=p->data;p->next=q->next;free(q); 12. 顺序表中第一个元素的存储地址是100,每个元素的长度为2,则 第15个元素的地址是()。 A.110 B.108 C.100 D.128 13. 一棵非空的二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树一定满足()。 A.所有的结点均无左孩子 B.所有的结点均无右孩子 C.只有一个叶子结点 D.是任意一棵二叉树 14. 具有n个顶点的有向图最多有()条边。 A.n B.n2 C.n(n+1) D.n(n-1) 15. 设用邻接矩阵A表示有向图G的存储结构,则有向图G中顶点i 的入度为()。 A.第i行非0元素的个数之和 B. 第i列非0元素的个数之和 C.第i行0元素的个数之和 D. 第i列0元素的个数之和

《空间数据结构基础》第四讲习题参考答案

《空间数据结构基础》第四讲习题参考答案 一、判断题(在正确说法的题后括号中打“√”,错误说法的题后括号中打“×”) 1、KMP算法的特点是在模式匹配时指示主串的指针不会变小。( √ ) 2、串是一种数据对象和操作都特殊的线性表。( √ ) 3、只包含空白字符的串称为空串。( × ) 4、稀疏矩阵压缩存储后,必会失去随机存取功能。( × ) 5、使用三元组表示稀疏矩阵的非零元素能节省存储空间。( √ ) 6、插入与删除操作是数据结构中最基本的两种操作,因此这两种操作在数组中也经常使用。(×) 7、若采用三元组表存储稀疏矩阵,只要把每个元素的行下标和列下标互换,就完成了对该矩阵的转置运算。(×) 二、单项选择题 1.下面关于串的的叙述中,哪一个是不正确的?( B ) A.串是字符的有限序列B.空串是由空格构成的串 C.模式匹配是串的一种重要运算D.串既可以采用顺序存储,也可以采用链式存储 2.有串S1=’ABCDEFG’,S2 = ’PQRST’,假设函数con(x,y)返回x和y串的连接串,subs(s,i,j)返回串s的从序号i的字符开始的j个字符组成的子串,len(s)返回中s的长度,则con(subs(s1,2,len(s2)),subs(s1,len(s2),2))的结果串是( D )。 A.BCDEF B.BCDEFG C.BCPQRST D.CDEFGFG 3、串的长度是指( B ) A.串中所含不同字母的个数B.串中所含字符的个数 C.串中所含不同字符的个数D.串中所含非空格字符的个数 三、填空题 1、串是一种特殊的线性表,其特殊性表现在数据元素为字符,操作集也不同;两个串相等的充分必要条件是两串的长度相等且两串中对应位置的字符也相等。 2、设正文串长度为n,模式串长度为m,则串匹配的Brute-Force算法的时间复杂度为 O(m*n) ;KMP算法的时间复杂度为 O(m+n) 。 3、已知数组A[0..9,0..9]的每个元素占5个存储单元,将其按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A[6,8]的地址为 1340 。 四、综合题 1、KMP算法较Brute-Force算法有哪些改进? 【参考解答】

2019广东专插本韩山师范学院《数据结构》考试大纲

《数据结构》考试大纲 I 考试的性质与目的 本科插班生考试是由专科毕业生参加的选拔性考试。《数据结构》是计算机科学与技术专业(本科)的一门专业基础课程,考试主要检查考生对常用基本数据结构(顺序表、链表、栈、队列、树、二叉树、图等)的逻辑结构、存储结构和相应算法的掌握程度,以保证后续课程的学习。 II 考试的内容 一、考试基本要求 1、基本理论知识 (l)、数据结构的基本概念和基本术语,算法的描述方法和算法分析的基本概念。 (2)、线性表的基本概念、线性表的基本操作以及这些操作分别在顺序存储和链式存储结构下的实现及复杂度分析。 (3)、栈和队列的定义、存储结构、实现和典型应用。 (4)、串的定义及其基本操作。 (5)、数组的定义、运算和顺序存储。 (6)、树的定义、基本术语和存储结构,二叉树的定义和性质、二叉树的存储结构及其各种操作,哈夫曼树的概念和应用。 (7)、图的定义和术语、图的存储结构及其各种操作。 (8)、各种查找方法的算法、适用范围及时间复杂度的分析。 (9)、多种内排算法的基本思想和算法的时间复杂度分析,不同排序方法的比较。 2、基本技能 (1)、能阅读用类C语言编写的算法。 (2)、能分析算法所完成的功能、运行结果和时间复杂度。 (3)、能根据要求用类C语言编写算法。 二、考核知识点及考核要求 第一章绪论 一、考核知识点 1.数据、数据元素、数据项、数据对象、数据结构、逻辑结构、物理结构、元素、结点等基本概念。抽象数据类型的定义、表示和实现方法。 2.算法、算法的特性、如何用类C语言来描述算法。 3.算法设计的基本要求以及计算语句频度和估算算法时间复杂度的方法。 二、考核要求 1.识记:有关数据结构的基本概念,四种基本数据结构的特点。 2.理解:四种基本数据结构的基本运算,算法复杂度度量的基本概念。 3.应用:用类C语言描述算法

试述数据模型的概念

试述数据模型的概念,数据模型的作用和数据模型的三个要素: 答案: 模型是对现实世界的抽象。在数据库技术中,表示实体类型及实体类型间联系的模型称为“数据模型”。 数据模型是数据库管理的教学形式框架,是用来描述一组数据的概念和定义,包括三个方面: 1、概念数据模型(Conceptual Data Model):这是面向数据库用户的实现世界的数据模型,主要用来描述世界的概念化结构,它使数据库的设计人员在设计的初始阶段,摆脱计算机系统及DBMS的具体技术问题,集中精力分析数据以及数据之间的联系等,与具体的DBMS 无关。概念数据模型必须换成逻辑数据模型,才能在DBMS中实现。 2、逻辑数据模型(Logixal Data Model):这是用户从数据库所看到的数据模型,是具体的DBMS所支持的数据模型,如网状数据模型、层次数据模型等等。此模型既要面向拥护,又要面向系统。 3、物理数据模型(Physical Data Model):这是描述数据在储存介质上的组织结构的数据模型,它不但与具体的DBMS有关,而且还与操作系统和硬件有关。每一种逻辑数据模型在实现时都有起对应的物理数据模型。DBMS为了保证其独立性与可移植性,大部分物理数据模型的实现工作又系统自动完成,而设计者只设计索引、聚集等特殊结构。 数据模型的三要素: 一般而言,数据模型是严格定义的一组概念的集合,这些概念精确地描述了系统的静态特征(数据结构)、动态特征(数据操作)和完整性约束条件,这就是数据模型的三要素。 1。数据结构 数据结构是所研究的对象类型的集合。这些对象是数据库的组成成分,数据结构指对象和对象间联系的表达和实现,是对系统静态特征的描述,包括两个方面: (1)数据本身:类型、内容、性质。例如关系模型中的域、属性、关系等。 (2)数据之间的联系:数据之间是如何相互关联的,例如关系模型中的主码、外码联系等。 2 。数据操作 对数据库中对象的实例允许执行的操作集合,主要指检索和更新(插入、删除、修改)两类操作。数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。数据操作是对系统动态特性的描述。 3 。数据完整性约束 数据完整性约束是一组完整性规则的集合,规定数据库状态及状态变化所应满足的条件,以保证数据的正确性、有效性和相容性。

{组织设计}硬盘数据组织结构

(组织设计)硬盘数据组织 结构

EBR,叫做扩展MBR(ExtendedMBR),位于硬盘的某柱面0磁道1扇区 1.簇(cluster) 是DOS给文件系统分配磁盘空间的最小单位。由若干连续的逻辑扇区组成,不同的盘,簇的大小不同,簇是从2开始编号,见表6-1。 逻辑扇区号=(簇号-2)×扇区数/簇+数据区首扇区号 2.BOOT记录: 第壹部分:0~2字节为跳转指令,转向启动码区。 第二部分:3~10字节为厂商标识字段,如MSDOS5.0。 第三部分:11~61字节为磁盘参数表(51字节)。 第四部分:62~509字节为启动程序(438字节)。 最后:55,AA字节。 51字节BPB表(BIOSParameterBlock) OB-OC:每扇区字节数(512) OD:扇区数/簇 0E-0F:保留扇区(指Boot区) 10:FAT个数 11-12:根目录最大登记项数 13-14:本分区扇区总数(小于32M的分区,大于32MB时,为0) 15:介质描述符 16-17:每个FAT扇区数 18-19:每道扇区数 1A-1B:磁头数 1C-1F:本分区前的扇区数(隐含扇区,即从0(X)柱0头1扇到0(X)柱1头1扇之间的扇区,由于不能为DOS访问,故称为隐含扇区)。 20-23:大容量盘总扇区数。 24:BIOS设备号(hex:HD=8x) 25:未使用 26:扩展引导标记(29H) 27-2A:卷序列号(随机) 2B-35:卷标,分区标识,如:WIN98 36-3D:文件系统格式(FAT16)

3.FAT(文件配置表) FAT有俩个,当第壹个损坏时,为人工修复提供方便,DOS不会自动用第二个去修复第壹个FAT,而DOS实际上没有用尽2个FAT占用的扇区,因为可作为他用。FAT登记盘上簇的使用情况,登记项有12位、16位和32位之分,下面以16位为例说明FAT的格式。 16位FAT格式: 簇号(表项)0000H0001H0002H…NNNNH 类型保留簇使用簇 含义介质标志记录文件簇号链 保留簇的第壹字节为磁盘介质标志,后为填充位,全为FFH。使用簇能够是; 0000:自由 FFF6:备用 FFF7:坏簇 FFF8-FFFF:文件结束 其它:文件的下壹簇 4.文件目录表(根目录表FDT) 记录文件名、属性、建立时间、日期、首簇及长度的壹个表。每个文件占用表32字节, O0-O7:文件主名(文件被删除后,00字节为E5H) O8-0A:文件扩展名 0B:文件属性 27H: ↑↑↑↑↑↑ X:未用,填0档案子目录卷标系统隐含只读 0C-15:保留(全0) 16-17:建立文件的时间 18-19:建立文件的日期 1A-1B:文件首簇 1C-1F:文件长度 LFNentry:长文件名项,属性字节为0F表示LFNentry Cr.timerefinementin10msunits:以10ms为计时精度 5.主引导记录(MBR)

计算机基础专插本复习资料

第一章 1、计算机是一种能够按照事先存储的程序,自动、高速地对数据进行输入、处理、输出和 存储的系统。 2、一个计算机系统包括硬件和软件两部分。硬件是由电子的、磁性的、机械的器件组成的 物理实体。软件是有关文档的总称,包括系统软件、应用软件和工具软件三大类。 3、计算机能够完成的基本操作及其主要功能:输入、处理、输出、存储。 4、计算机按处理对象分类:数字计算机,模拟计算机,数字模拟计算机。按用途分类:通 用计算机,专用计算机。按规模分类:巨型计算机,大/中型计算机,小型计算机,微型计算机,工作站,服务器,网络计算机。 5、计算机的特点:运算速度快,运算精度高,具有记忆能力,具有逻辑判断能力,存储程 序。 6、计算机的用途:科学计算,数据处理,实时控制,人工智能,计算机辅助工程和辅助 教育,娱乐与游戏。 7、第一部计算机的产生:1946年 8、冯·诺依曼存储程序:把计算机程序与数据一起存储在计算机中,从而可以方便地返回 前面的指令或反复执行,解决了ENIAC在操作上的不便。 9、信息化社会的特征:建立完善的信息基础设施,采用先进的信息技术,建立广泛的信息 产业,拥有高素质的信息人才,构建良好的信息环境。 10、信息社会对计算机人才的要求:要求对计算机人才具有较高的综合素质和创新能力,并对新技术的发展具有良好的适应性 11、计算机科学技术的研究范畴:包括了计算机理论,硬件,软件,网络及应用。按照研究的内容:分为基础理论,专业基础和应用 第二章 1、按进位的原则进行计数称为进位计数制,简称数制 2、采用位权表示法的数制具有的特点:数字的总个数等于基数、最大的数字比基数小1、 每个数字都要乘以基数的幂次,该幂次由每个数字所在的位置决定 3、在计算机中采用定点表示法和浮点表示法表示小数点。定点表示法:规定计算机中所有 数的小数点位置是固定不变的,小数点无需使用专门的记号表示。浮点表示法:小数点的位置不固定,一个浮点数分为阶码和尾数两部分,阶码用于表示小数点在该数的位置,尾数用于表示数的有效数值 4、BCD码:一种二——十进制的编码,即使用4位二进制数表示一位十进制数 5、ASCII码:由美国信息交换标准委员会制定的国际上使用最广泛的字符编码方案 6、偶校验规则:若1的个数为偶数,则校验位置0,相反则置1. 7、命题是一个具有意义且能判断真假的语句,它是一个陈述句。在命题代数中的连接词有 与,或,非,异或,条件,双条件。 8、命题公式:由命题变元,连接词和括号组成的合式的式子。如果两个不同的命题公式, 无论其命题变元取什么值它们的真值都相同,则称该两个命题公式等价 9、逻辑代数:零律:A+0=A A0=0 幺律:A+1=1 A1=A幂等律:A+A=A AA =A求补律:A+A非=1 AA非等于0 交换律:A+B=B+A AB=BA结合律:A+(B+C)=(A+B)+C A(BC)=(AB)C 分配律:A(B+C)=AB+AC A+BC=(A+B)(A+C) 吸收律:AB+ AB非=A(A+B)(A+B非)=A狄摩根定律:(A+B 大非)=A非B非(AB大非)=A非+B非双重否定律:A非非=A 10、计算机硬件系统组成:①运算器:是对二进制数进行运算的部件。运算器由算术逻 辑部件(ALU)、寄存器等组成,主要技术指标是运算速度,单位是MIPS(百万指令/

广州大学插本数据结构试题

数据结构试卷(一) 一、单选题(每题 2 分,共 20 分) 1. 栈和队列的共同特点是 ( )。 A. 只允许在端点处插入和删除元素 B. 都是先进后出 C. 都是先进先出 D. 没有共同点 2. 用链接方式存储的队列,在进行插入运算时 ( ). 4. 设有一个二维数组 A[m][n] ,假设 A[0][0] 存放位置在 644(10), A[2][2] 存放位置在 676(10),每个元素占一个空间, 问 A[3][3](10) 存放在什么位置?脚注 (10)表示用 10 进制表示。 7. 若有 18个元素的有序表存放在一维数组 A[19] 中,第一个元素 放 A[1] 中,现进行二分查找,则查找 A [ 3]的比较序列的下 标依次为 ( ) B. 9,5,2,3 C. 9,5,3 D. 9,4,2,3 8. 对 n 个记录的文件进行快速排序,所需要的辅助存储空间大致 为 A. O (1) B. O (n ) C. O (1og 2n ) D. O (n2) 9. 对于线性表( 7,34,55,25,64,46,20,10)进行 散列存储 时,若选用 H ( K ) =K %9作为散列函数,则散列地址为 1 的元 素有( )个, A .1 B .2 C .3 D .4 10. 设有6个结点的无向图,该图至少应有 A. 仅修改头指针 B. C. 仅修改尾指针 D. 改 3. 以下数据结构中哪一个是非线性结构? A. 队列 B. 栈 叉树 头、尾指针都要修改 头、尾指针可能都要修 ( ) C. 线 性表 D. A .688 B .678 C .692 D .696 5. 树最适合用来表示 ( )。 A .有序数据元素 C .元素之间具有分支层次关系的数据 系的数据 6. 二叉树的第 k 层的结点数最多为 ( ). k A .2k -1 B.2K+1 C.2K-1 B.无序数据元素 D.元素之间无联 D. 2 k-1 A. 1, 2,3

数据模型与数据库系统结构

数据模型与数据库系统结构 1.数据 为了了解世界,研究世界和交流信息,我们需要描述各种事物,用自然语言来描述虽然很直接,但是过于烦琐,不便于形式化,更不利于计算机去表达,为此,我们常常只抽取那些感兴趣的事物特征或属性来描述它。 例如:XX今天下课回到寝室,跟室友说,啊,兄弟们,我单身了!!~~~~准备请大家吃顿饭庆祝一下~~~~ 大家好奇的问 他叫小雪,21岁,是医护系的,护理专业和我是老乡,遵义人。 我们可以从胡锋的描述中获取到以下一条记录,小雪今年21岁遵义人是医护系护理专业的学生,那这种描述事物的符号记录我们称为数据。 数据有一定的格式,例如姓名在中国而言一般是4个汉字的字符(某些少数民族),性别呢是一个汉字字符,等等,那这些我们称为数据的语法,而数据的含义是数据的语义。我们通过解释、推论,归纳,分析和综合等等方法,从数据中获得有意义的内容称为信息。因此,数据是信息存在的一种形式,只有通过解释或处理才能成为有用的信息。 一般来说,数据库中的数据具有以下两个特征 1)数据的静态特征 包括数据的基本结构,数据间的联系和对数据取值范围的约束 学生管理的例子

在学生基本信息中包括:学号,姓名,性别,出生日期,专业,家庭地址。 这些都是学生所具有的基本特征,是学生数据的基本结构。 学生选课信息中包括:学号,课程号,考试成绩等信息,其中选课信息和学生基本信息中的学号是有一定关联的,即选课信息中的学号所能选取的值必须在学生基本信息中的学号取值范围之内,只有这样,学生选课信息中所描述的学生选课情况才是有意义的。 说白一点,也就是这个学生要存在,他才会有选课信息。这个就是数据之间的联系。 最后,我们再来看看什么是数据取值范围的约束 例如,人的性别一项取值只能是男或女,课程的学分一般是大于0的整数值,而我们的考试成绩一般在0~100分范围内等,这些都是对某个列的数据取值范围进行的限制,目的是在数据库中存储正确的,有意义的数据,这就是对数据取值范围的约束 2)数据的动态特征 数据的动态特征是指对数据可以进行的操作以及操作规则。 对数据库数据的操作主要是有查询数据和更改数据,更改数据一般又包括对数据的插入,删除和修改 通常我们将数据的静态特征和动态特征的描述称为数据模型三要素。即描述数据时要包括数据的基本结构,数据的约束条件和定义在数据

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