NOIP初赛复习(九)数据结构基础
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
NOIP初赛复习(九)数据结构基础
展开全文
定期推送信息学新闻,竞赛自主招生,信息学专业知识,信息学疑难解答,融科教育信息学竞赛培训等诸多优质内容的微信平台,欢迎分享文章给你的朋友或者朋友圈!
算法 + 数据结构=程序
算法通常是决定程序效率的关键,但一切算法最终都要在相应的数据结构上实现。
数据结构是计算机存储、组织数据的方式,是指相互之间存在一种或多种特定关系的数据元素的集合。
许多算法的精髓就是在于选择了合适的数据结构作为基础。
选择数据结构的考虑要素:
1、数据结构要适应问题的状态描述。
在程序中,要涉及到状态的
存储、转换等。
选择的数据结构必需先适用于描述状态,并使对状态的各种操作能够明确地定义在数据结构上。
2、数据结构应与所选择的算法相适应。
数据结构是为算法服务的,其选择要充分考虑算法的各种操作。
数据结构对算法的影响:
1、数据结构的存储能力。
如果数据结构存储能力强、存储信息多,算法将会较好设计。
反之对于过于简单的数据结构,可能就要设计一套比较复杂的算法了。
在这一点上,经常体现时间与空间的矛盾。
2、定义在数据结构上的操作。
“数据结构”一词之所以不同于“变量”,主要在于数据结构上定义了基本操作,这些操作就好比工具,有了好的工具,算法设计也会比较轻松。
数据结构
根据数据元素之间关系的不同特性,通常可以归类为下列四类基本结构:
(1)集合结构:元素间关系仅是同属一个集合。
(2)线性结构:元素间存在一对一的关系。
(3)树形结构:元素间的关系是一对多的关系。
(4)图形结构:元素间的关系是多对多的关系。
一、线性结构
线性结构是N个数据元素构成的有限序列。
线性结构存储方式分为顺序存储结构和链式存储结构两种。
顺序存储结构
平时使用的数组就是这种结构,比如Pascal:a:[1..100]
oflongint; C++:int a[100]。
当需要在顺序存储的线性表中插入一个数据元素时,需要顺序移动后续的元素以“腾”出某个合适的位置放置新元素。
链式存储结构
二维数组与线性表
如果某一线性表,它的每一个数据元素分别是一个线性表,这样的二维表在数据实现上通常使用二维数组。
二维数组的一个形象比喻:多个纵队形成的方块 m * n。
数组地址计算问题
题目描述:已知N*(N+1)/ 2个数据,按行的顺序存入数组b[1],b[2],…中。
其中第一个下标表示行,第二个下标表示列。
若aij (i>=j,j=1,2,…,,n)存于b[k]中,问:k,i,j之间的关系如何表示?
答案:K=i*(i-1)/2+j
栈与卡特兰数:略,可参考:
NOIP初赛复习(三)栈与卡特兰数>>>
队列
先进先出。
允许插入的一端称为队尾(rear),允许删除的一端称为队头(front)。
循环队列
头指针指向队列中队头元素的前一个位置,尾指针指示队尾元素在队列中的当前位置。
二、树型结构
基本概念:根、叶子、子树。
结点的度:结点拥有的子树数
二叉树的遍历和性质:略,可参考:
NOIP初赛复习(四)二叉树的遍历和性质>>> 三、图形结构
图常用的存储结构:邻接矩阵
欧拉图
欧拉通路(回路):通过图G的每条边一次且仅一次,而且走遍每个结点的通路(回路),就是欧拉通路(回路)。
存在欧拉回路的图就是欧拉图。
欧拉回路要求边不能重复,结点可以重复。
笔不离开纸,不重复地走完所有的边,且走过所有结点,也就是所谓的一笔画。
欧拉图或通路的判定
1、无向连通图G是欧拉图,G不含奇数度结点(G的所有结点度数为偶数);
2、非平凡连通图G含有欧拉通路,G最多有两个奇数度的结点;
3、连通有向图D含有有向欧拉回路(即欧拉图),D中每个结点的入度=出度。
哈密顿图
哈密顿通路(回路):通过图G的每个结点一次,且仅一次的通路(回路),就是哈密顿通路(回路)。
存在哈密顿回路的图就是哈密顿图。
每日练习
1、一个向量第一个元素的存储地址是100,每个元素的长度是2,则第5个元素的地址是( ) 。
A)110 B)108 C) 100 D) 109
2、设有一个含有13个元素的Hash表(0~12),Hash函数是:H(key)=key% 13,其中% 是求余数运算。
用线性探查法解决冲突,则对于序列(2、8、31、20、19、18、5
3、27),18应放在第几号格中( ) 。
A) 5 B) 9 C) 4 D) 0
3、在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的( ) 倍。
A) 1/2 B)1 C) 2 D) 4
4、要使1...8号格子的访问顺序为:8、2、6、
5、7、3、1、4,则下图中的空格中应填入( )。
A) 6 B) 0 C) 5 D) 3
5、设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5,e6依次通过栈S,一个元素出栈后即进入队列Q,若出队的顺序为e2,e4,e3,e6,e5,e1,则栈S的容量至少应该为( ) 。
A) 2 B) 3 C) 4 D) 5
6、若已知一个栈的入栈顺序是1,2,3,…,n,其输出序列为P1,P2,P3,…,Pn,若P1是n,则Pi是( )
A)i B)n-1 C)n-i+1 D)不确定
7、以下哪一个不是栈的基本运算( )
A)删除栈顶元素 B)删除栈底的元素
C)判断栈是否为空 D)将栈置为空栈
8、下面关于算法的错误说法是( )
A)算法必须有输出 B)算法必须在计算机上用某种语言实现
C)算法不一定有输入 D)算法必须在有限步执行后能结束
9、在顺序表(2,5,7,10,14,15,18,23,35,41,52)中,用二分法查找12,所需的关键码比较的次数为( )
A)2 B)3 C)4 D)5
10、无向图G=(V,E),其中V={a,b,c,d,e,f}E={(a,b),(a,e),(a,c),(b,e),(c,f),(f,d),(e,d)}对该图进行深度优先遍历,得到的顶点序列正确的是( )
A) a,b,e,c,d,f B)a,c,f,e,b,d C)a,e,b,c,f,d D)a,b,e,d,f,c
11、某数列有1000个各不相同的单元,由低至高按序排列;现要对该数列进行二分法检索(binary-search),在最坏的情况下,需检视()个单元。
A.1000
B. 10
C.100
D. 500
12、线性表若采用链表存贮结构,要求内存中可用存贮单元地址()
A.必须连续
B. 部分地址必须连续
C.一定不连续
D. 连续不连续均可
13、下列叙述中,正确的是()
A.线性表的线性存贮结构优于链表存贮结构
B.队列的操作方式是先进后出
C.栈的操作方式是先进先出
D. 二维数组是指它的每个数据元素为一个线性表的线性表
14、设循环队列中数组的下标范围是1~n,其头尾指针分别为f 和r,则其元素个数为()
A.r-f
B.r-f+1
C.(r-f) MOD n+1
D.(r-f+n) MOD n
15、表达式(1+34)*5-56/7 的后缀表达式为()。
A)1+34*5-56/7 B) -*+1 34 5/56 7 C) 1 34 +5*56 7/-
D) 1 34 5* +56 7/- E) 1 34+5 56 7-*/
16、已知元素(8,25,14,87,51,90,6,19,20),问这些元素以怎样的顺序进入栈,才能使出栈的顺序满足:8在51前面;90在87的后面;20在14的后面;25在6的前面;19在90的后面。
()。
(题意是全部进栈,再依次出栈)
A)20,6,8,51,90,25,14,19,87
B)51,6,19,20,14,8,87,90,25
C)19,20,90,7,6,25,51,14,87
D)6,25,51,8,20,19,90,87,14
E)25,6,8,51,87,90,19,14,20
17、假设我们用d=(a1,a2,...,a5),表示无向图G的5个顶点的度数,下面给出的哪(些)组d 值合理()。
A){5,4,4,3,1} B){4,2,2,1,1} C){3,3,3,2,2}
D){5,4,3,2,1} E){2,2,2,2,2}
18、完全二叉树的结点个数为4 * N + 3,则它的叶结点个数为()。
A. 2 * N
B. 2 * N - 1
C. 2 * N +
1 D.
2 * N - 2 E. 2 * N + 2
19、二叉树T的宽度优先遍历序列为AB C D E F G H I,已知A
是C的父结点,D 是G 的父结点,F 是I 的父结点,树中所有结点的最大深度为3(根结点深度设为0),可知F的父结点是()。
A. 无法确定
B. B
C. C
D.D
E. E
20、在所有排序方法中,关键字比较的次数与记录的初始排列次序无关的是( ) 。
A) 希尔排序 B) 起泡排序 C) 插入排序 D) 选择排序
21、已知,按中序遍历二叉树的结果为:abc
问:有多少种不同形态的二叉树可以得到这一遍历结果,并画出这些二叉树。
22、根据Nocomachns定理,任何一个正整数n的立方一定可以表示成n个连续的奇数的和。
例如:
13=1
23=3+ 5
33=7+9+11
43=13+15+17+19
在这里,若将每一个式中的最小奇数称为X,那么当给出n之后,请写出X与n之间的关系表达式。
23、将数组{32, 74, 25, 53, 28, 43, 86, 47}中的元素按从小到大的顺序排列,每次可以交换任意两个元素,最少需要交换____次。
24、取火柴游戏的规则如下:一堆火柴有N 根,A、B 两人轮流取出。
每人每次可以取1根或2 根,最先没有火柴可取的人为败方,另一方为胜方。
如果先取者有必胜策略则记为1,先取者没有必胜策略记为0。
当N 分别为100,200,300,400,500 时,先取者有无必胜策略的标记顺序为___(回答应为一个由0和/或1组成的字符串)
历年真题
1.完全二叉树有2*N-1的结点,则它的叶子结点数目是()。
A.N-1 B.2*N C.N D.2N-1 E.N/2
2.将数组{8,23,4,16,77,-5,53,100}中元素从大到小按顺序排序,每次可以交换任意两个元素,最少要交换()次。
A.4 B.5 C.6 D.7 E.8
3.递归过程和函数调用时,处理参数和返回地址,通常使用一种称为()的数据结构。
A.队列 B.多维数组 C.线性表 D.链表 E.栈
4.对有序数组{5,13,19,21,37,56,64,75,88,92,100}进行二分查找,等概率情况下,查找成功的平均查找长度(平均比较次数)是()。
A.35/11 B.34/11 C.33/11 D.32/11 E.34/10
5.设T是一棵有n个定点的树,以下说法正确的是()。
A.T是联通的,无环的 B.T是联通的,有n-1条边
C.T是无环的,有n-1条边 D.以上都不对
6. 对有序数组{5, 13, 19, 21, 37, 56, 64, 75, 88,92,100}进行二分查找,成功查找元素19的查找长度(比较次数)是()。
A.1
B. 2
C. 3
D. 4
7. 在32*32点阵的“字库”中,汉字“北”与“京”的字模占用字节数之和是()。
A. 512
B. 256
C. 384
D. 128
8. 在关系数据库中, 存放在数据库中的数据的逻辑结构以( )为主
A. 二叉树
B. 多叉树
C. 哈希表
D.C+树
E. 二维表
9. 欧拉图G是指可以构成一个闭回路的图,且图G的每一条边恰好在这个闭回路上出现一次(即一笔画成)。
在以下各个描述中,不一定是欧拉图的是()。
A. 图G中没有度为奇数的顶点
B. 包含欧拉环游的图(欧拉环游是指通过图中每边恰好一次的闭路径)
C. 包含欧拉闭迹的图(欧拉迹是指通过图中每边恰好一次的路径)
D. 存在一条回路,通过每个顶点恰好一次
E. 本身闭迹的图
10.高度为n的均衡的二叉树是指:如果去掉叶结点及相应的树
枝,它应该是高度为n-1的满二叉树。
在这里,树高等于叶结点的最大深度,根结点的深度为0,如果某个均衡的二叉树共有2381个结点,则该树的树高为()。
A. 10
B. 11
C. 12
D. 13
E. 210 – 1
11.将5个数的序列排序,不论原先的顺序如何,最少都可以通过()次比较,完成从小到大的排序。
A. 6
B. 7
C. 8
D. 9
E. 10
12. 在下列各种排序算法中,不是以“比较”作为主要操作的算法是()。
A. 选择排序
B. 冒泡排序
C. 插入排序
D. 基数排序
13.高度为n的均衡的二叉树是指:如果去掉叶结点及相应的树枝,它应该是高度为n-1的满二叉树。
在这里,树高等于叶结点的最大深度,根结点的深度为0,如果某个均衡的二叉树共有2381个结点,则该树的树高为()。
A. 10
B. 11
C. 12
D. 13
14.将5个数的序列排序,不论原先的顺序如何,最少都可以通过()次比较,完成从小到大的排序。
A.6
B. 7
C. 8
D. 9
15. 字符串“ababacbab”和字符串“abcba”的最长公共子串是()。
A. abcba
B. cba
C. abc
D. ab
E. bcba
16. 完全二叉树的结点个数为4 * N + 3,则它的叶结点个数为()。
A. 2 * N
B. 2 * N - 1
C. 2 * N + 1
D. 2 * N - 2
E. 2 * N+ 2
17. 平面上有五个点A(5, 3), B(3, 5), C(2, 1),D(3, 3), E(5, 1)。
以这五点作为完全图G 的顶点,每两点之间的直线距离是图G 中对应边的权值。
图G 的最小生成树中的所有边的权值综合为()。
A. 8
B. 7+ 5
C. 9
D. 6+ 5
E. 4+2 2 + 5
18. 一位艺术史学家有20000 幅1024* 768 的真彩色(24位)图像,如果将这些图像以位图形式保存在CD 光盘上(一张CD 光盘的容
量按600M计算),大约需要()张CD光盘。
A. 1
B. 10
C.100
D. 1000
E. 10000
19. 完全二叉树的结点个数为11,则它的叶结点个数为()。
A. 4
B.3
C.5
D. 2
E. 6
20. 平面上有五个点A(5, 3), B(3, 5), C(2, 1), D(3, 3), E(5, 1)。
以这五点作为完全图G 的顶点,每两点之间的直线距离是图G中对应边的权值。
以下哪条边不是图G 的最小生成树中的边()。
A. AD
B. BD
C. CD
D. DE
E. EA
21.某大学计算机专业的必修课及其先修课程如下表所示:
请你判断下列课程安排方案哪个(些)是合理的()。
A. C0, C1, C2, C3,C4, C5, C6, C7
B. C0, C1, C2, C3, C4,C6, C7, C5
C. C0, C1, C6, C7,C2, C3, C4, C5
D. C0, C1, C6, C7, C5,C2, C3, C4
E. C0, C1, C2, C3,C6, C7, C5, C4
22. 满二叉树的叶结点个数为N,则它的结点总数为()。
A.N
B. 2 * N
C. 2 * N – 1
D. 2 * N + 1
E. 2N– 1
23. 在下图中,从顶点()出发存在一条路径可以遍历图中的每条边一次,而且仅遍历一次。
A.A点
B. B点
C. C点
D. D点
E. E点
数据结构基础每日练习参考答案:
1B 2B 3B 4C 5B
6C 7B 8B 9C 10D
11B 12D 13D 14D 15C
16D 17BE 18E 19C 20BD
21:5种 22:n^2-n+1
23:5 24:11011
另:为感谢各位家长一直以来对融科信息学的信任与支持,在双十二来临之际,特推出双十二底价团购信息学课程,详情点击链接→融科教育双十二同学“惠”,信息学课程底价疯狂抢!(←点击链接,了解活动详情吧)
长沙信息学竞赛。