分享

NOIP初赛复习(九)数据结构基础

 长沙7喜 2018-04-16

定期推送信息学新闻竞赛自主招生信息学专业知识信息学疑难解答,融科教育信息学竞赛培训等诸多优质内容的微信平台,欢迎分享文章给你的朋友或者朋友圈


算法 + 数据结构=程序

算法通常是决定程序效率的关键,但一切算法最终都要在相应的数据结构上实现。

数据结构是计算机存储、组织数据的方式,是指相互之间存在一种或多种特定关系的数据元素的集合。许多算法的精髓就是在于选择了合适的数据结构作为基础。

选择数据结构的考虑要素:

1、数据结构要适应问题的状态描述。在程序中,要涉及到状态的存储、转换等。选择的数据结构必需先适用于描述状态,并使对状态的各种操作能够明确地定义在数据结构上。

2、数据结构应与所选择的算法相适应。数据结构是为算法服务的,其选择要充分考虑算法的各种操作。

数据结构对算法的影响:

1、数据结构的存储能力。如果数据结构存储能力强、存储信息多,算法将会较好设计。反之对于过于简单的数据结构,可能就要设计一套比较复杂的算法了。在这一点上,经常体现时间与空间的矛盾。

2、定义在数据结构上的操作。“数据结构”一词之所以不同于“变量”,主要在于数据结构上定义了基本操作,这些操作就好比工具,有了好的工具,算法设计也会比较轻松。

数据结构

根据数据元素之间关系的不同特性,通常可以归类为下列四类基本结构:

    (1)集合结构:元素间关系仅是同属一个集合。

    (2)线性结构:元素间存在一对一的关系。

    (3)树形结构:元素间的关系是一对多的关系。

    (4)图形结构:元素间的关系是多对多的关系。


 一、线性结构

线性结构是N个数据元素构成的有限序列。线性结构存储方式分为顺序存储结构和链式存储结构两种。

顺序存储结构

平时使用的数组就是这种结构,比如Pascala:[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、312019185327),18应放在第几号格中(   ) 

A) 5    B) 9   C) 4    D) 0

3、在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的(   ) 倍。

A) 1/2    B)1   C) 2    D) 4

4、要使1...8号格子的访问顺序为:82657314,则下图中的空格中应填入(   )

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、若已知一个栈的入栈顺序是123,…,n,其输出序列为P1P2P3,…,Pn,若P1n,则Pi(   )

A)i   B)n-1   C)n-i+1   D)不确定

7、以下哪一个不是栈的基本运算(   )

A)删除栈顶元素    B)删除栈底的元素

C)判断栈是否为空     D)将栈置为空栈 

8、下面关于算法的错误说法是(   )

A)算法必须有输出    B)算法必须在计算机上用某种语言实现

C)算法不一定有输入     D)算法必须在有限步执行后能结束

9、在顺序表(2571014151823354152)中,用二分法查找12,所需的关键码比较的次数为(  )

A)2     B)3     C)4    D)5

10、无向图G=(VE),其中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、设循环队列中数组的下标范围是1n,其头尾指针分别为fr,则其元素个数为( )

 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 的后缀表达式为(      )。

 A1+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、已知元素(8251487519061920),问这些元素以怎样的顺序进入栈,才能使出栈的顺序满足:851前面;9087的后面;2014的后面;256的前面;1990的后面。(   )。(题意是全部进栈,再依次出栈)

A2068519025141987

B5161920148879025

C1920907625511487

D6255182019908714

E2568518790191420

17、假设我们用d=(a1,a2,...,a5),表示无向图G5个顶点的度数,下面给出的哪(些)组值合理(    )。

A{54431}     B{42211}    C{33322}

D{54321}     E{22222}

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,已知AC的父结点,的父结点,的父结点,树中所有结点的最大深度为3(根结点深度设为0),可知F的父结点是(   )。

A. 无法确定         B. B         C. C        D.D        E. E

20、在所有排序方法中,关键字比较的次数与记录的初始排列次序无关的是(   ) 

A) 希尔排序    B) 起泡排序    C) 插入排序    D) 选择排序

21、已知,按中序遍历二叉树的结果为:abc

问:有多少种不同形态的二叉树可以得到这一遍历结果,并画出这些二叉树。

22、根据Nocomachns定理,任何一个正整数n的立方一定可以表示成n个连续的奇数的和。例如:

131

233+ 5

337+9+11

4313+15+17+19

在这里,若将每一个式中的最小奇数称为X,那么当给出n之后,请写出Xn之间的关系表达式。

23、将数组{32, 74, 25, 53, 28, 43, 86, 47}中的元素按从小到大的顺序排列,每次可以交换任意两个元素,最少需要交换____次。

24、取火柴游戏的规则如下:一堆火柴有根,A两人轮流取出。每人每次可以取1根或根,最先没有火柴可取的人为败方,另一方为胜方。如果先取者有必胜策略则记为1,先取者没有必胜策略记为0。当分别为100200300400500 时,先取者有无必胜策略的标记顺序为___(回答应为一个由0/1组成的字符串)


历年真题

1.完全二叉树有2*N-1的结点,则它的叶子结点数目是(    )。

AN-1    B2*N    CN    D2N-1    EN/2

2.将数组{82341677-553100}中元素从大到小按顺序排序,每次可以交换任意两个元素,最少要交换(    )次。

A4        B5       C6        D7      E8

3.递归过程和函数调用时,处理参数和返回地址,通常使用一种称为(   )的数据结构。

A.队列    B.多维数组    C.线性表     D.链表    E.栈

4.对有序数组{5,13,19,21,37,56,64,75,88,92,100}进行二分查找,等概率情况下,查找成功的平均查找长度(平均比较次数)是()。

A35/11        B34/11           C33/11            D32/11      E34/10

5.设T是一棵有n个定点的树,以下说法正确的是(       )。

AT是联通的,无环的                       BT是联通的,有n-1条边

CT是无环的,有n-1条边                   D.以上都不对

6. 对有序数组{5, 13, 19, 21, 37, 56, 64, 75, 8892100}进行二分查找,成功查找元素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)。以这五点作为完全图的顶点,每两点之间的直线距离是图中对应边的权值。图的最小生成树中的所有边的权值综合为()。

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中对应边的权值。以下哪条边不是图的最小生成树中的边()。

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

215种    22n^2-n+1

235     2411011


另:为感谢各位家长一直以来对融科信息学的信任与支持,在双十二来临之际,特推出双十二底价团购信息学课程,详情点击链接→融科教育双十二同学“惠”,信息学课程底价疯狂抢!(←点击链接,了解活动详情吧)

长沙信息学竞赛

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多