三级数据库技术.docx
- 文档编号:2905891
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:60
- 大小:671.39KB
三级数据库技术.docx
《三级数据库技术.docx》由会员分享,可在线阅读,更多相关《三级数据库技术.docx(60页珍藏版)》请在冰豆网上搜索。
三级数据库技术
三级数据库技术-数据结构部分
——经管系信息研发社团
(2005年秋30分2006年春30分)
(2006年秋35分2007年春35分)
(2007年秋35分2008年春35分)
(2008年秋25分2009年春25分)
(2009年秋37分2010年春?
分)
实行理论笔试,时间为120分钟
三级数据库技术-数据结构部分1
1.数据结构的基本概念及有关术语2
2.基本数据结构及其操作5
线性表的定义5
顺序表的定义6
顺序表的插入算法7
顺序表的删除算法8
单链表9
单链表的插入10
单链表的删除12
循环链表13
双向链表14
3.数组的定义、数组逻辑结构与存储结构的关系;17
4.栈的定义、逻辑结构、存储结构,进栈、出栈操作;17
栈的定义及其运算17
顺序栈18
链栈20
5.队列的定义、逻辑结构、存储结构,循环队列,进队、出队操作;22
队列的定义及其运算22
顺序队列23
循环队列24
链队列26
6.二叉树的定义、性质、存储结构,二叉树的遍历,二叉排序树,哈夫曼树;28
树28
树结构的基本术语30
二叉树的定义31
二叉树的性质32
二叉树的存储结构34
链式存储结构34
二叉树的遍历35
二叉排序树38
哈夫曼树40
7.检索方法42
查找的基本概念42
有序表的查找43
二叉排序树查找44
8.内部排序方法46
排序的基本概念46
直接插入排序48
希尔排序49
冒泡排序51
快速排序52
堆排序55
归并排序57
1.数据结构的基本概念及有关术语
数据、数据元素、数据类型、数据的逻辑结构、数据的存储结构、算法和算法分析、算法的时间及空间复杂性;
数据(data)
数据是描述客观事物的数字、字符以及所有能够输入到计算机中并被计算机处理的信息的总称除了数字、字符之外,还有用英文、汉字或其他语种字母组成的词组、语句、以及表示图形、图象和声音等信息也可称之为数据。
数据元素(DataElement)
数据元素是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。
数据元素除了可以是一个数字或一个字符串以外,它也可以由一个或多个数据项(数据项:
是有独立含义的数据的最小单位,有时也称为字段。
)组成。
数据的逻辑结构(DataStructure)
是带有结构的数据元素的集合,它是指数据元素之间的相互关系,即数据的组织形式。
我们把数据元素间的逻辑上的联系,称之为数据的逻辑结构。
如:
线性结构(图书档案类问题)、树结构(棋类对奕)、图结构(交通或通信网问题)
特点:
体现数据元素间的抽象化相互联系,逻辑结构并不涉及数据元素在计算机中具体的存储方式,是独立于算机的。
数据的存储结构(物理结构)
数据的逻辑结构在计算机存储设备中的映象被成为数据的存储结构,也可以说数据的存储结构是逻辑结构在计算机存储器里的实现又称物理结构。
数据的存储结构依赖与计算机。
数据结构的基本概念及有关术语
数据类型(DataType)
所谓数据类型是一个值的集合以及在这些值上定义的一组操作的总称。
通常数据类型可以看作是程序设计语言中已实现的数据结构。
算法(Algorithm)
算法是对特定问题求解步骤的一种描述,是指令的有限序列。
描述算法需要一种语言,可以是自然语言、数学语言或者是某种计算机语言。
算法常常含有重复的步骤和一些比较或逻辑判断。
不同的算法可能用不同的时间、空间或效率来完成同样的任务。
一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
算法流程图
算法的大陆中文名称出自《周髀算经》;而英文名称Algorithm来自于9世纪波斯数学家花拉子米(比阿勒·霍瓦里松,波斯语:
خوارزمی,拉丁转写:
al-Khwarizmi),因为比阿勒·霍瓦里松在数学上提出了算法这个概念。
“算法”原为"algorism",意思是阿拉伯数字的运算法则,在18世纪演变为"algorithm"。
欧几里得算法被人们认为是史上第一个算法。
第一次编写程序是AdaByron于1842年为巴贝奇分析机编写求解解伯努利方程的程序,因此AdaByron被大多数人认为是世界上第一位程序员。
因为查尔斯·巴贝奇(CharlesBabbage)未能完成他的巴贝奇分析机,这个算法未能在巴贝奇分析机上执行。
因为"well-definedprocedure"缺少数学上精确的定义,19世纪和20世纪早期的数学家、逻辑学家在定义算法上出现了困难。
20世纪的英国数学家图灵提出了著名的图灵论题,并提出一种假想的计算机的抽象模型,这个模型被称为图灵机。
图灵机的出现解决了算法定义的难题,图灵的思想对算法的发展起到了重要的作用。
《周髀算经》(“髀”,拼音:
bǐ,bì,注音:
ㄅㄧˇ,ㄅㄧˋ,中古拼音:
pjex,-{并弭}-切)也简称《周髀》,是一部中国较早的数学专业书籍,在中国唐代收入《算经十书》,并为《十经》的第一部。
“周髀”这个名称,按该书中的解释,“周”指的是周代,指从周代传下来的一些方法,“髀”原意指的是股(大腿)或者股骨,在这里的意思是“长八尺用来测量日影的表”。
周髀的成书年代至今没有统一的说法,有人认为是周公所作。
《周髀算经》是中国历史上最早的一本算术类经书。
周就是圆,髀就是股。
上面记载周公与商高的谈话,其中就有勾股定理的最早文字记录,即"勾三股四弦五",亦被称作商高定理。
事实上这一定理在时间上还应往前推移。
《周髀算经》的采用最简便可行的方法确定天文历法,揭示日月星辰的运行规律,囊括四季更替,气候变化,包涵南北有极,昼夜相推的道理。
给后来者生活作息提供有力的保障,自此以后历代数学家无不以《周髀算经》为参考,在此基础上不断创新和发展。
《周髀算经》体现中国人民勤劳和智慧,可以称得上是世界古代科学技术的一座不朽丰碑.
中國哲學書電子化計劃
序:
夫高而大者,莫大于天;厚而广者,莫广于地。
体恢洪而廓落,形修广而幽清,可以玄象课其进退,然而宏远不可指掌也。
可以晷仪验其长短,然其巨阔不可度量也。
虽穷神知化不能极其妙,探𦣱索隐不能尽其微,是以诡异之说出,则两端之理生,遂有浑天、盖天,兼而并之。
故能弥纶天地之道,有以见天地之𦣱,则浑天有灵宪之文,盖天有周髀之法,累代存之,官司是掌,所以钦若昊天,恭授民时。
爽以暗蔽,才学浅昧,隣高山之仰止,慕景行之轨辙,负薪馀日,聊观《周髀》。
其旨约而远,其言曲而中,将恐废替,濡滞不通,使谈天者无所取则,辄依经为图,诚冀颓毁重仞之墙,披露堂室之奥,庶博物君子,时逈思焉。
算法一般具有下列5个重要特性:
(1)输入。
一个算法应该有一个或多个输入。
(2)有穷性。
一个算法必须在执行有穷步骤之后正常结束,而不能形成无穷循环。
(3)确定性。
算法中的每一条指令必须有确切的含义,不能产生多义性。
(4)可行性。
算法中的每一条指令必须是切实可执行的,即原则上可以通过已经实
现的基本运算执行有限次来实现。
(5)输出。
一个算法应有零个或多个输出,这些输出是同输入有某个特定关系的
量。
算法分析技术
1.评价算法好坏的标准
评价一个算法好坏算法首先应该是"正确"的,另外,主要还要看这个算法所要占用机器资源的多少。
而在这些资源中时间空间是两个最主要的方面。
①问题的规模。
所谓问题的规模是指算法中数据元素的数量。
下文常用小写字母n来表示。
假设某问题只有一个数据元素(n=1),算法的时间、空间占用无论如何也不会很大,可以忽略不予考虑。
但是,某问题有成千上万个数据元素时,即问题的规模n很大时,算法的时间、空间占用就不可忽略。
②空间。
所谓算法的空间代价(或称空间复杂性)指的是:
当问题的规模以某种单位由1增至n时,解决该问题的算法实际所占用的空间也以某种单位由1增至f(n)。
则称该算法的空间代价是f(n)。
③时间。
算法的时间代价(或称时间复杂性)。
2.基本数据结构及其操作
线性表的定义、逻辑结构、存储结构(顺序存储、链式存储),插入、删除操作;
线性表的定义
线性表是最简单、最常用的一种数据结构。
是由n(n≥0)个数据元素(结点)a1,a2,…,an组成的有限序列。
对于非空的线性表:
①有且仅有一个开始结点a1,没有直接前趋,有且仅有一个直接后继a2;
②有且仅有一个终结结点an,没有直接后继,有且仅有一个直接前趋an-1;
③其余的内部结点ai(2≤i≤n-1)都有且仅有一个直接前趋ai-1。
④其余的内部结点ai(2≤i≤n-1)都有且仅有一个后继结点ai+1。
例:
以下两个例子都是线性表。
⒈英文字母表:
(A,B,C,D,…,X,Y,Z);
⒉一周中的7天:
(星期日,星期一,星期二,星期三,
星期四,星期五,星期六);
线性表各种运算简介
对于线性表要经常进行的基本运算主要有以下几种:
(1)求线性表的表长。
(2)取线性表中的第i个元素。
(3)修改线性表中的第i个元素。
(4)删除线性表中的第i个元素。
(5)在线性表中第i个元素之后(或之前)插入一个新的元素。
(6)按某种要求重新排列线性表中各元素的顺序。
(7)按某个特定值查找线性表中元素。
线性表的其他复杂运算还有:
线性表的合并;对有序表的插入、删除等。
顺序表的定义
用把线性表的结点按逻辑次序依次存放在一组地址连续的存储单元里的方法存储的线性表简称为顺序表。
顺序表是用向量实现的线性表,向量的下标可以看作结点的相对地址。
因此顺序表的的特点是逻辑上相邻的结点其物理位置亦相邻。
顺序表存储结构
在计算机内,可以用不同的方法来存储数据信息,最常用的方法是顺序存储。
顺序存储结构也称为向量存储。
假设每个元素占用的空间大小为L个字节,其中第一个单元的存储地址则是该结点的存储地址,并设表中开始结点a1的存储地址(简称为基地址)是LOC(a1),那么结点ai的存储地址LOC(ai)可通过下式计算:
LOC(ai)=LOC(a1)+L*(i-1) 1≤i≤n
注意:
在顺序表中,每个结点ai的存储地址是该结点在表中的位置i的线性函数。
只要知道基地址和每个结点的大小,就可在相同时间内求出任一结点的存储地址。
是一种随机存取结构。
顺序表的类定义
typedefintElemType;
//定义数据元素的类型,类型可根据实际情况而定,这里假设为int
constintMAXSIZE=100;
//表空间的大小可根据实际需要而定,这里假设为100
classSqlist
{ private:
ElemTypeelem[MAXSIZE]; //数组,用于存放表结点
intlength;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 三级 数据库技术
![提示](https://static.bdocx.com/images/bang_tan.gif)