2010青海省数据结构与算法最新考试试题库(完整版)

合集下载

国开期末考试《数据结构与算法》机考试题及答案(第10套)

国开期末考试《数据结构与算法》机考试题及答案(第10套)

国开期末考试《数据结构与算法》机考试题及答案(第10套)一、选择题(每题2分,共20分)1. 数据的逻辑结构是指()。

A. 数据元素之间的逻辑关系B. 数据元素本身的特点C. 数据的存储结构D. 数据的加工处理过程答案:A. 数据元素之间的逻辑关系二、填空题(每题2分,共20分)2. 在栈中,最后进入的数据元素总是首先被()。

答案:弹出三、判断题(每题2分,共20分)3. 线性表是一种线性结构。

()答案:正确四、简答题(每题10分,共30分)4. 简述顺序存储结构和链式存储结构的特点。

答案:顺序存储结构:数据元素在物理位置上连续存储,可以通过下标快速访问。

五、编程题(共50分)5. 编写一个函数,实现单链表的排序。

(20分)答案:class ListNode:def __init__(self, value):self.value = valueself.next = Nonedef sort_linked_list(head):if not head or not head.next:return headpivot = head.valueless = less_head = ListNode(None) equal = equal_head = ListNode(None) greater = greater_head = ListNode(None)current = headwhile current:if current.value < pivot:less.next = currentless = less.nextelif current.value == pivot:equal.next = currentequal = equal.nextelse:greater.next = currentgreater = greater.nextcurrent = current.nextless.next = less_head.nextequal.next = equal_head.next greater.next = greater_head.nextreturn merge_sorted_lists(sort_linked_list(less_head.next),sort_linked_list(equal_head.next), sort_linked_list(greater_head.next))def merge_sorted_lists(l1, l2, l3):dummy = ListNode(None)current = dummywhile l1 and l2 and l3:if l1.value < l2.value and l1.value < l3.value:current.next = l1l1 = l1.nextelif l2.value < l1.value and l2.value < l3.value:current.next = l2l2 = l2.nextelse:current.next = l3l3 = l3.nextcurrent = current.nextif l1:current.next = l1 elif l2:current.next = l2 else:current.next = l3 return dummy.next。

数据结构与算法 试题及答案

数据结构与算法 试题及答案

绪论一、填空题1、数据的逻辑结构是数据元素之间的逻辑关系,通常有下列4类:集合_、线性结构_、树型结构_、图状结构_。

2、数据的存储结构是数据在计算机存储器里的表示,主要有4种基本存储方法:顺序存储_、链式存储_、索引存储_、散列存储_。

二、选择题1、一个算法必须在执行有穷步之后结束,这是算法的(B )。

A、正确性B、有穷性C、确定性D、可行性2、算法的每一步必须有确切的定义,也就是说,对于每步需要执行的动作必须严格、清楚地给出规定,这是算法的(A)。

A、正确性B、有穷性C、确定性D、可行性3、算法原则上都是能够有机器或人所完成的。

整个算法好象是一个解决问题的“工作序列”,其中的每一步都是我们力所能及的一个动作,这是算法的(D)A、正确性B、有穷性C、确定性D、可行性三、简单题1、什么是数据结构?什么是算法?两者有什么关系?什么是数据结构?数据结构是按某种逻辑关系组织起来的一批数据(或称带结构的数据元素的集合)应用计算机语言并按一定的存储表示方式把它们存储在计算机的存储器中,并在其上定义了一个运算的集合。

什么是算法?广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”两者有什么关系?算法与数据结构关系密切。

选择的数据结构是否恰当直接影响算法的效率;而数据结构的优劣由算法的执行来体现。

2、什么是复杂度和空间复杂度?时间复杂度是指执行算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。

3、数据的逻辑结构分几种?存储结构又有哪几种?数据的逻辑结构:结构定义中的“关系”,描述的是数据元素之间的逻辑关系;包括线性结构(线性表、栈、队、串、数组)和非线性结构(图形结构、树形结构);数据的存储结构(物理结构):数据结构在计算机中的表示(又称映像),包括数据元素的表示和关系德表示。

有顺序存贮(向量存贮)、链式存贮、索引存贮、散列存贮。

线性表1、一个线性表第一个元素的存储地址是100,每个元素的长度为2,则第5 个元素的地址是( B)。

数据结构与算法复习题库含答案

数据结构与算法复习题库含答案

数据结构与算法复习题库含答案1. 问题描述:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

答案:可以使用哈希表来解决此问题。

首先初始化一个空的哈希表,然后遍历数组中的每个元素。

对于每个元素,首先计算目标值与当前元素的差值,然后在哈希表中查找该差值。

如果找到了该差值,则说明存在两个数的和等于目标值,返回这两个数的下标;否则,将当前元素插入到哈希表中。

时间复杂度为O(n),其中n为数组的长度。

2. 问题描述:给定一个字符串,找出其中不含重复字符的最长子串的长度。

答案:可以使用滑动窗口来解决此问题。

维护一个窗口,其中包含没有重复字符的子串。

遍历字符串中的每个字符,如果该字符不在窗口中,将其加入窗口;如果该字符在窗口中,移动窗口的左边界直到窗口中不包含重复字符。

记录窗口的最大长度。

时间复杂度为O(n),其中n为字符串的长度。

3. 问题描述:给定一个字符串和一个单词列表,找出字符串中可以由单词列表中的单词组成的所有子串的起始位置。

答案:可以使用滑动窗口和哈希表来解决此问题。

首先统计单词列表中每个单词的出现次数。

然后遍历字符串中的每个位置作为子串的起始位置,维护一个滑动窗口。

在窗口中依次取出长度和单词列表中单词总长度相等的子串,在哈希表中统计子串中每个单词出现的次数。

如果窗口中的子串与单词列表中的单词出现次数一致,则记录该子串的起始位置。

时间复杂度为O(n*m),其中n为字符串的长度,m为单词列表中的单词个数。

4. 问题描述:给定一个无序的整数数组,找出其中缺失的第一个正整数。

答案:可以使用原地哈希表来解决此问题。

遍历数组中的每个元素,将每个正整数放到数组中对应的位置上。

遍历数组中的每个元素,如果该位置上的数不等于数组索引加一,则该索引加一即为缺失的第一个正整数。

时间复杂度为O(n),其中n为数组的长度。

5. 问题描述:给定一个字符串s,找到s中最长的回文子串。

答案:可以使用动态规划来解决此问题。

2010青海省数据结构与算法理论考试试题及答案

2010青海省数据结构与算法理论考试试题及答案

1、下列序列中,执行第一趟快速排序后得到的序列是( A )。

A)[d,a,e,d,b]f[h,g] B) [c,e,a,d]f[h,g,b]C) [g,a,e,c,b]f[d,h] D) [a,b,c,d,]f[e,g,h]2、设有一个栈,元素的进栈次序为A, B, C, D, E,下列是不可能的出栈序列是( C )。

A) A, B, C, D, EB) B, C, D, E, AC) E, A, B, C, DD) E, D, C, B, A3、( C )在进行插入操作时,常产生假溢出现象。

A)顺序栈 B)循环队列C)顺序队列 D)链队列4、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( D )存储方式最节省时间。

A)顺序表B)双链表C)带头结点的双循环链表D)单循环链表5、在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶指针,当做出栈处理时,top变化为( C )。

A)top不变 B)top=0 C)top-- D)top++6、如果结点A有3个兄弟,而且B为A的双亲,则B的度为( B )。

A)3 B)4 C)5 D)17、n个顶点,e条边的有向图的邻接矩阵中非零元素有( C )个。

A)n B)2e C)e D) n+e8、采用链结构存储线性表时,其地址( B )。

A)必须是连续的 B)连续不连续都可以C)部分地址必须是连续 D)必须是不连续的9、二叉树第i(i≥1)层上至多有( C )结点。

A)2i B)2i C)2i-1 D)2i-110、设单链表中指针p指着结点A,若要删除A之后的结点(若存在),则需要修改指针的操作为( A )。

A)p->next=p->next->next B)p=p->nextC)p=p->nexe->next D)p->next=p11、在一个链队列中,假定front和rear分别为队首和队尾指针,则删除一个结点的操作为( B )。

(完整版)数据结构试题及答案

(完整版)数据结构试题及答案

(完整版)数据结构试题及答案《数据结构》⾃考复习思考试题○10⼀、单项选择题(本⼤题共15⼩题,每⼩题2分,共30分)在每⼩题列出的四个备选项中只有⼀个是符合题⽬要求的,请将其代码填写在题后的括号内。

错选、多选或未选均⽆分。

1. 若将数据结构形式定义为⼆元组(K,R),其中K是数据元素的有限集合,则R是K上( ) A. 操作的有限集合 B. 映象的有限集合C. 类型的有限集合D. 关系的有限集合2. 在长度为n的顺序表中删除第i个元素(1≤i≤n)时,元素移动的次数为( )A. n-i+1B. iC. i+1D. n-i3. 若不带头结点的单链表的头指针为head,则该链表为空的判定条件是( )A. head==NULLB. head->next==NULLC. head!=NULLD. head->next==head4. 引起循环队列队头位置发⽣变化的操作是( )A. 出队B. ⼊队C. 取队头元素D. 取队尾元素5. 若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进⾏,则不.可能出现的出栈序列是( )A. 2,4,3,1,5,6B. 3,2,4,1,6,5C. 4,3,2,1,5,6D. 2,3,5,1,6,46. 字符串通常采⽤的两种存储⽅式是( )A. 散列存储和索引存储B. 索引存储和链式存储C. 顺序存储和链式存储D. 散列存储和顺序存储7. 设主串长为n,模式串长为m(m≤n),则在匹配失败情况下,朴素匹配算法进⾏的⽆效位移次数为( )A. mB. n-mC. n-m+1D. n8. ⼆维数组A[12][18]采⽤列优先的存储⽅法,若每个元素各占3个存储单元,且第1个元素的地址为150,则元素A[9][7]的地址为( )A. 429B. 432.C. 435D. 4389. 对⼴义表L=((a,b),(c,d),(e,f))执⾏操作tail(tail(L))的结果是( )A. (e,f)B. ((e,f))C. (f)D. ( )10. 下列图⽰的顺序存储结构表⽰的⼆叉树是( )11. n个顶点的强连通图中⾄少含有( )A. n-1条有向边B. n条有向边C. n(n-1)/2条有向边D. n(n-1)条有向边12. 对关键字序列(56,23,78,92,88,67,19,34)进⾏增量为3的⼀趟希尔排序的结果为( )A. (19,23,56,34,78,67,88,92)B. (23,56,78,66,88,92,19,34)C. (19,23,34,56,67,78,88,92)D. (19,23,67,56,34,78,92,88)13. 若在9阶B-树中插⼊关键字引起结点分裂,则该结点在插⼊前含有的关键字个数为( ) A. 4 B. 5C. 8D. 914. 由同⼀关键字集合构造的各棵⼆叉排序树( )A. 其形态不⼀定相同,但平均查找长度相同B. 其形态不⼀定相同,平均查找长度也不⼀定相同C. 其形态均相同,但平均查找长度不⼀定相同.D. 其形态均相同,平均查找长度也都相同15. ISAM⽂件和VSAM⽂件的区别之⼀是( )A. 前者是索引顺序⽂件,后者是索引⾮顺序⽂件B. 前者只能进⾏顺序存取,后者只能进⾏随机存取C. 前者建⽴静态索引结构,后者建⽴动态索引结构D. 前者的存储介质是磁盘,后者的存储介质不是磁盘⼆、填空题(本⼤题共10⼩题,每空2分,共20分)16. 数据的逻辑结构在计算机存储器内的表⽰,称为数据的____________。

数据结构试题库及答案

数据结构试题库及答案

数据结构试题库及答案一、选择题(每题2分,共20分)1. 在数据结构中,线性表的顺序存储结构通常使用()来存储。

A. 链表B. 栈C. 队列D. 数组答案:D2. 以下哪个算法不是排序算法?A. 快速排序B. 归并排序C. 深度优先搜索D. 堆排序答案:C3. 在二叉树的遍历算法中,先访问根节点,然后遍历左子树,最后遍历右子树的遍历方式是()。

A. 先序遍历B. 中序遍历C. 后序遍历D. 层序遍历答案:A4. 哈希表的冲突解决方法不包括以下哪种?A. 链地址法B. 线性探测法C. 二分查找法D. 再散列法答案:C5. 在图的遍历算法中,广度优先搜索(BFS)使用的辅助数据结构是()。

A. 栈B. 队列C. 堆D. 链表答案:B6. 下列关于堆的描述中,错误的是()。

A. 堆是一种特殊的完全二叉树B. 堆中的每个节点的值都大于其子节点的值C. 堆可以用于实现优先队列D. 堆的插入操作的时间复杂度为O(log n)答案:B7. 在一个长度为n的数组中,使用二分查找算法查找一个元素的最坏情况下的时间复杂度是()。

A. O(1)B. O(n)C. O(n^2)D. O(log n)答案:D8. 以下哪个数据结构不是线性结构?A. 链表B. 栈C. 队列D. 二叉树答案:D9. 以下哪个算法是动态查找表?A. 直接索引B. 顺序查找C. 二分查找D. 哈希表答案:D10. 在图的表示方法中,邻接矩阵表示法的缺点是()。

A. 占用空间大B. 占用空间小C. 插入和删除操作复杂D. 遍历操作复杂答案:A二、填空题(每题2分,共20分)1. 在一个长度为n的数组中,使用顺序查找算法查找一个元素的时间复杂度为________。

答案:O(n)2. 一个具有n个节点的完全二叉树的高度为________。

答案:log2(n) + 1(向上取整)3. 一个长度为n的链表,删除一个节点的时间复杂度为________。

答案:O(1)4. 在图的表示方法中,邻接表表示法的缺点是________。

数据结构试题及答案(10套)

数据结构试题及答案(10套)

一、单选题(每题 2 分,共20分)1.1.对一个算法的评价,不包括如下(B )方面的内容。

A.健壮性和可读性 B.并行性 C.正确性 D.时空复杂度2.2.在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行(A )。

A. p->next=HL->next; HL->next=p;B. p->next=HL; HL=p;C. p->next=HL; p=HL;D. HL=p; p->next=HL;3.3.对线性表,在下列哪种情况下应当采用链表表示( B )A.经常需要随机地存取元素B.经常需要进行插入和删除操作C.表中元素需要占据一片连续的存储空间D.表中元素的个数不变4.4.一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是( C )A. 2 3 1B. 3 2 1C. 3 1 2D. 1 2 35.网是一种(D )。

A.有向图 B.无向图 C.无向无环图 D.有向无环图6.6.采用开放定址法处理散列表的冲突时,其平均查找长度(B)。

A.低于链接法处理冲突 B. 高于链接法处理冲突C.与链接法处理冲突相同 D.高于二分查找7.7.若需要利用形参直接访问实参时,应将形参变量说明为(D )参数。

A.值 B.函数 C.指针 D.引用8.8.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的( A )。

A.行号 B.列号 C.元素值 D.非零元素个数9.9.快速排序在最坏情况下的时间复杂度为( D )。

A.O(log2n) B.O(nlog2n) C.0(n) D.0(n2)10.10.从二叉搜索树中查找一个元素时,其时间复杂度大致为( C )。

A. O(n)B. O(1)C. O(log2n) D. O(n2)二、运算题(每题 6 分,共24分)1. 1.数据结构是指数据及其相互之间的______________。

数据结构与算法 试题及答案

数据结构与算法 试题及答案

数据结构与算法试题及答案数据结构与算法试题及答案在计算机科学领域,数据结构与算法是非常重要的基础知识。

数据结构是一种组织和存储数据的方式,而算法则是解决问题的方法和步骤。

掌握好数据结构与算法,有助于提高程序的运行效率和解决实际问题。

下面是一些关于数据结构与算法的试题及其答案,希望能够帮助大家更好地理解和应用这方面的知识。

试题一:什么是数据结构?请举例说明。

答案一:数据结构是一种组织和存储数据的方式。

它可以使数据的操作更加高效。

常见的数据结构有数组、链表、栈、队列、树和图等。

举个例子,数组是一种线性数据结构,可以存储一组相同类型的元素。

试题二:什么是算法?请举例说明。

答案二:算法是一种解决问题的方法和步骤。

它是一个精确的描述,用于解决特定问题。

常见的算法有排序算法、查找算法、递归算法等。

例如,冒泡排序算法是一种比较简单的排序算法,通过不断交换相邻元素的位置来达到排序的目的。

试题三:什么是时间复杂度和空间复杂度?答案三:时间复杂度和空间复杂度是衡量算法性能的两个指标。

时间复杂度是指算法执行所需要的时间,通常用大O符号表示。

空间复杂度是指算法执行所需要的额外空间,通常也用大O符号表示。

它们都是描述算法随着输入规模增大而变化的趋势。

试题四:介绍一下常见的数据结构和相应的操作。

答案四:常见的数据结构有数组、链表、栈、队列、树和图等。

- 数组是一种线性数据结构,可以随机访问元素,并且在插入和删除元素时需要移动其他元素。

- 链表是一种动态数据结构,不需要固定的内存空间,但只能通过指针进行元素的访问。

- 栈是一种后进先出(LIFO)的数据结构,只能在栈顶进行插入和删除元素的操作。

- 队列是一种先进先出(FIFO)的数据结构,只能在队尾插入元素,在队头删除元素。

- 树是一种非线性数据结构,由节点和指向子节点的边组成。

常见的树有二叉树、二叉搜索树和AVL树等。

- 图是一种复杂的数据结构,由节点和边组成,可以表示各种关系。

(完整版)数据结构与算法试题

(完整版)数据结构与算法试题

一、选择题1. 在逻辑上能够把数据结构分红(A)A. 线性结构和非线性结构B. 动向结构和静态结构C.紧凑结构和非紧凑结构D.内部结构和外面结构2. 单链表中各结点之间的地点(C)A. 一定连续B.部分一定连续C.不必定连续D.以上均不对3. 在一个长度为 n 的次序表中向第 i 个元素( 0<i<=n+1 )以前插入一个新元素时,需向后挪动(B )个元素。

A 、n-iB、n-i+1C、n-i-1D、 i4. 插入和删除操作只好在一端进行的线性表,称为(C )。

A. 行列B. 线性表C. 栈D.循环行列5、行列是仅同意在()进行插入,而在()进行删除。

(A )A. 队尾,队首B. 队尾,队尾C. 队首,队尾D. 队首,队首6. 链表合适于(A )查找。

A. 次序B.二分C.随机D.次序或二分7. 数据的基本单位是(A )。

A. 数据元素B.数据结构C.数据项D.数据对象8. 以下哪个不是算法的特征(B )。

A. 有穷性B. 可数性C.可行性D.确立性9. 在表长为 n 的次序表中进行线性查找,它的均匀查找长度为(B )。

A.ASL=nB.ASL=(n+1)/2C.ASL=n+1 D.ASL=log2n10. 一个线性表第一个元素的储存地点是 320,每个元素的长度为 3,则第五个元素的地点是(C )。

11. 设 front 、rear 分别为循环双向链表结点的左指针和右指针,则指针 P 所指的元素是双循环链表 L 的尾元素的条件是(D )。

A.P==LB.P->front==LC.P==NULLD.P->rear==L12. 已知 P 为单链表中的非首尾结点,删除 P 结点的后继结点 Q 的语句为(A )。

A.P->NEXT=Q->NEXT;FREE(Q);B.Q->NEXT=P; FREE(Q);C.Q->NEXT=P->NEXT;FREE(Q);D.P->NEXT=S;S->NEXT=P; B第1页共16页 1A.SQ->rear==SQ->frontB. (SQ->rear+1)%MAXLEN==SQ->frontC.SQ->rear==0D. SQ->front==014. 一组记录的排序码为( 46, 79,56, 38, 40, 84),则利用堆排序的方法成立的初始堆 为(B )。

数据结构与算法测试题+参考答案

数据结构与算法测试题+参考答案

数据结构与算法测试题+参考答案一、单选题(共80题,每题1分,共80分)1、某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用什么存储方式最节省运算时间?A、仅有头指针的单循环链表B、双链表C、仅有尾指针的单循环链表D、单链表正确答案:C2、数据结构研究的内容是()。

A、数据的逻辑结构B、数据的存储结构C、建立在相应逻辑结构和存储结构上的算法D、包括以上三个方面正确答案:D3、下列关于无向连通图特征的叙述中,正确的是:所有顶点的度之和为偶数边数大于顶点个数减1至少有一个顶点的度为1A、只有1B、1和2C、1和3D、只有2正确答案:A4、下面的程序段违反了算法的()原则。

void sam(){ int n=2;while (n%2==0) n+=2;printf(“%d”,n);}A、确定性B、可行性C、有穷性D、健壮性正确答案:C5、对任意给定的含 n (n>2) 个字符的有限集 S,用二叉树表示 S 的哈夫曼编码集和定长编码集,分别得到二叉树 T1 和 T2。

下列叙述中,正确的是:A、出现频次不同的字符在 T2 中处于相同的层B、出现频次不同的字符在 T1 中处于不同的层C、T1 的高度大于 T2 的高度D、T1 与 T2 的结点数相同正确答案:A6、数据序列{ 3,2,4,9,8,11,6,20 }只能是下列哪种排序算法的两趟排序结果?A、快速排序B、选择排序C、插入排序D、冒泡排序正确答案:A7、设散列表的地址区间为[0,16],散列函数为H(Key)=Key%17。

采用线性探测法处理冲突,并将关键字序列{ 26,25,72,38,8,18,59 }依次存储到散列表中。

元素59存放在散列表中的地址是:A、11B、9C、10D、8正确答案:A8、采用递归方式对顺序表进行快速排序,下列关于递归次数的叙述中,正确的是:A、每次划分后,先处理较短的分区可以减少递归次数B、递归次数与每次划分后得到的分区处理顺序无关C、递归次数与初始数据的排列次序无关D、每次划分后,先处理较长的分区可以减少递归次数正确答案:B9、以下数据结构中,()是非线性数据结构。

2010年青海省C++答案 数据结构试卷及答案理论考试试题及答案

2010年青海省C++答案 数据结构试卷及答案理论考试试题及答案

33、数据结构中,从逻辑上可以把数据结构分成(?)。
?A.动态结构和静态结构?B.紧凑结构和非紧凑结构?C.线性结构和非线性结构?D.内部结构和外部结构
34、在决定选取何种存储结构时,一般不考虑 A 。
A.各结点的值如何 B.结点个数的多少
C.对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。
16、在一个长度为n(n>1)的单链表上,设有头和尾两个指针,执行 B 操作与链表的长度有关。
A.删除单链表中的第一个元素
B.删除单链表中的最后一个元素
C.在单链表第一个元素前插入一个新元素
D.在单链表最后一个元素后插入一个新元素
17、深度为k的完全二叉树至多有( )个结点
35、在决定选取何种存储结构时,一般不考虑 A 。
A.各结点的值如何 B.结点个数的多少
C.对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。
36、在一个长度为n(n>1)的单链表上,设有头和尾两个指针,执行 B 操作与链表的长度有关。
A.删除单链表中的第一个元素
42、衡量查找算法效率的主要标准是( C )。
A)元素个数 B)所需的存储量
C)平均查找长度 D)算法难易程度
43、数据结构在计算机内存中的表示是指 A 。
A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系
A.head == NULL B head->next ==NULL
C.head->next ==head D head!=NULL
24、在决定选取何种存储结构时,一般不考虑 A 。
A.各结点的值如何 B.结点个数的多少

数据结构10年考研试题及答案(整理)

数据结构10年考研试题及答案(整理)

数据结构考试重点及部分答案自己做的答案不是很正确如果有问题请联系后面的大题不知道原题,所以不知道怎么做见谅!!!题型和分值选择题:15*2=30填空题:10*2=20解答题:5*4=20算法阅读题:5*4=20算法设计题:101 栈的进栈、出栈函数顺序,求一个表达式的顺序eg:进栈顺序是123 计算POP(S)+2 POP(S) =3+2*2=72 给定二叉排序树的数据求平均查找长度Eg:已知长度为9的表{16 ,3 ,7 ,11 ,9 ,26,18,14,15},建立二叉顺序树后进行查找,则等概率的情况下查找成功的平均查找长度为()二叉排序树(Binary Sort Tree)又称二叉查找树。

它或者是一棵空树;或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)左、右子树也分别为二叉排序树;根据上述性质,按照给出的表,建立的树如下图:(旁边的数表示查找长度)平均查找长度为:(1+2+2+3+3+4+5+5+6)/9 = 31/93树的概念树是n(n>=0)个结点的有限集4 二重循环的平均时间复杂度的求解(使用嵌套、统计次数)时间复杂度:该算法的运行时间与问题规模的对应关系,时间复杂度用T(n)=O(f(n))来表示Eg:S=0for(i=1;i<=n;i++)for(j=1;j<=m;j++)s=s+1答案为0(n*m)求解算法复杂度时:1、首先确定核心操作。

很显然此算法中,核心的操作是s=s+1;2.这个算法中,存在两重循环。

第一重循环n次,第二重循环m次,总共执行核心操作n*m次。

3.确定此算法的时间复杂度为:O (n*m)若复杂度为 O (n*n),则算法可以是如下的样子:S=0for(i=1;i<=n;i++)for(j=1;j<=n;j++)s=s+15 单链表中R是P的前驱,在P Q之间插入S,则则如何插入(语句表示)在相邻元素R、P之间插入一个值为X的数据元素的基本操作步骤:(1)生成一个数据域值为X的结点S(2)使X结点的指针域指向结点P:S->next=P->next(3)修改R结点的指针域指向结点X:P->next=S6 已知顺序表,求查找X的平均查找长度(n+1)/27栈的插入和删除的位置栈顶8 已知入队序列求出队序列原则:先进先出9 在图中,所有度数和等于边的几倍两倍10 邻接矩阵中行和列分别表示什么意思无向图邻接矩阵的第i行(或第i列)非零元素的个数正好是第i个顶点的度。

数据结构-《数据结构与算法》试卷及答案【考试试卷答案】

数据结构-《数据结构与算法》试卷及答案【考试试卷答案】

《数据结构与算法》试卷A适用专业: 考试日期: 闭卷 所需时间:120分钟 总分:100分一、 选择题(每题1分, 共20题,总共20分)。

1.算法分析的目的是( ) A .辨别数据结构的合理性 B .评价算法的效率C .研究算法中输入与输出的关系D .鉴别算法的可读性2.在一个单链表HL 中,若要在当前由指针p 指向的结点后面插入一个由q 指向的结点,则执行如下( )语句序列。

A. p=q; p->next=q;B. p->next=q; q->next=p;C. p->next=q->next; p=q;D. q->next=p->next; p->next=q; 3.以下哪一个不是队列的基本运算?( )A. 在队列第i 个元素之后插入一个元素B. 从队头删除一个元素C. 判断一个队列是否为空D.读取队头元素的值4.由权值分别为3,8,6,2的叶子生成一棵哈夫曼树,它的带权路径长度为( )。

A . 11 B.35 C. 19 D. 535.如下图所示的4棵二叉树中,( )不是完全二叉树。

6.下面关于线性表的叙述中,错误的是哪一个?( )A .线性表采用顺序存储,必须占用一片连续的存储单元。

B .线性表采用顺序存储,便于进行插入和删除操作。

C .线性表采用链接存储,不必占用一片连续的存储单元。

D .线性表采用链接存储,便于插入和删除操作。

7.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( )存储方式最节省运算时间。

A .单链表B .仅有头指针的单循环链表C .双链表D .仅有尾指针的单循环链表8. 若长度为n 的线性表采用顺序存储结构,在其第i 个位置插入一个新元素的算法的时间复杂度为( )(1<=i<=n+1)。

A. O(0)B. O(1)C. O(n)D. O(n 2)9. 若已知一个栈的入栈序列是1,2,3,…,n ,其输出序列为p 1,p 2,p 3,…,p N ,若p N 是n ,则p i 是( )。

2010年算法与数据结构(I)期末试题与参考答案

2010年算法与数据结构(I)期末试题与参考答案

蜗牛在线更多免费学习资料等待您的光临!2009—2010学年“算法与数据结构(I)”期末试题与参考答案一、单项选择题(本题共20分,每小题各2分)1.一个完整算法应该具备的特性之一是有穷性,这里的有穷性是指。

A.算法必须写得简明扼要B.算法必须在有限的时间内能够结束C.算法的每一步必须有清晰明确的含义D.算法的每一步必须具有可执行性2.设非空单链表的结点构造为data link 。

若已知q指结点是p指结点的的直接前驱,则在q和p之间插入s所指结点的过程是依次执行A.s->link=p->link; p->link=s; B.p->link=s->link; s->link=p;C.q->link=s; s->link=p; D.p->link=s; s->link=q;3.下列4种操作中,不是堆栈的基本操作的是。

A.判断堆栈是否为空B.删除栈顶元素C.删除栈底元素D.将堆栈置为空栈4.若完全二叉树的第6层有10个叶结点,则该完全二叉树结点总数最多是。

A.107 B.108 C.234 D.2355.若具有n 个顶点e 条边且不带权的无向图采用邻接矩阵存储,则邻接矩阵中零元素的数目是。

A.n+e B.2(n+e) C.n2+2e D.n2-2e6.对于无向图G1=(V1,E1)和G2=(V2,E2),若G2是G1的生成树,则下面的说法中,错误的是。

A.G2是G1的连通分量B.G2是G1的子图C.G2是G1的极小连通子图,且V1=V2 D.G2是G1的一个无环子图7.在表长为9 的有序表中进行折半查找,经过3 次元素之间的比较以后查找成功的元素分别是。

A.第2,4,7,9个元素B.第2,4,7,8个元素C.第1,3,6,8个元素D.第1,4,6,9个元素8.评价一个“好”的散列函数的主要指标是。

A.函数是否是一个解析式子B.函数的形式是否简单C.函数的取值是否均匀D.函数的计算是否快9.若序列(11,12,13,7,8,9,23,4,5)是采用下列排序方法之一得到的第2 趟排序后的结果,则该排序方法只能是。

数据结构考试试题及答案

数据结构考试试题及答案

数据结构考试试题及答案一、选择题(每题2分,共20分)1. 在数据结构中,线性表的顺序存储结构通常使用什么类型的数据结构来实现?A. 栈B. 队列C. 数组D. 链表答案:C2. 下列选项中,哪一个不是二叉树的性质?A. 任意节点的左子树和右子树的深度可能不同B. 任意节点的左子树和右子树的深度相同C. 任意节点的左子树和右子树的节点数可能不同D. 任意节点的左子树和右子树的节点数相同答案:B3. 哈希表的冲突解决方法不包括以下哪种?A. 开放定址法B. 链地址法C. 线性探测法D. 排序法答案:D4. 以下哪种排序算法的时间复杂度最低?A. 冒泡排序B. 快速排序C. 插入排序D. 归并排序答案:B5. 在图的遍历算法中,深度优先搜索(DFS)使用的栈是:A. 系统栈B. 显式栈C. 隐式栈D. 以上都不是答案:B6. 以下哪种数据结构可以有效地实现稀疏矩阵的存储?A. 顺序存储B. 链表C. 散列D. 邻接矩阵答案:C7. 在二叉搜索树中,插入一个新节点后,树的平衡因子可能为:A. -2B. 0C. 2D. 3答案:A8. 堆数据结构中,父节点的值总是大于其子节点的值,这种堆被称为:A. 最小堆B. 最大堆C. 完全二叉树D. 满二叉树答案:B9. 以下哪个算法不是动态查找表的算法?A. 直接查找B. 二分查找C. 斐波那契查找D. 哈希查找答案:A10. 在图的遍历算法中,广度优先搜索(BFS)使用的栈是:A. 系统栈B. 显式栈C. 隐式栈D. 以上都不是答案:C二、填空题(每题2分,共20分)1. 在数据结构中,栈是一种______结构,遵循后进先出(LIFO)的原则。

答案:线性2. 一个具有n个顶点的无向图的边数最多为______。

答案:n*(n-1)/23. 快速排序算法的时间复杂度在最坏情况下为______。

答案:O(n^2)4. 在哈希表中,如果一个关键字的哈希地址已经被占用,则需要进行______。

(完整版)数据结构试题及答案

(完整版)数据结构试题及答案

数据结构试卷(一)王彬一、单选题(每题2 分,共20分)1.栈和队列的共同特点是( )。

A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时( ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?( )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。

cA.688 B.678 C.692 D.6965.树最适合用来表示( )。

A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( d ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A. O(1)B. O(n)C. O(1og2n)D. O(n2)9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有( c d)个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。

A.5B.6C.7D.8二、填空题(每空1分,共26分)1.通常从四个方面评价算法的质量:____ ____、________、________和_______。

2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。

2010青海省数据库考试含答案基础

2010青海省数据库考试含答案基础

1、给定n个村庄之间的交通图,若村庄i和j之间有道路,则将顶点i和j用边连接,边上的Wij表示这条道路的长度,现在要从这n个村庄中选择一个村庄建一所医院,问这所医院应建在哪个村庄,才能使离医院最远的村庄到医院的路程最短?试设计一个解答上述问题的算法,并应用该算法解答如图所示的实例。

(20分)2、约瑟夫环问题(Josephus问题)是指编号为1、2、…,n的n(n>0)个人按顺时针方向围坐成一圈,现从第s个人开始按顺时针方向报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m的人又出列,…,如此重复直到所有的人全部出列为止。

现要求采用循环链表结构设计一个算法,模拟此过程。

3、本题要求建立有序的循环链表。

从头到尾扫描数组A,取出A[i](0<=i<n),然后到链表中去查找值为A[i]的结点,若查找失败,则插入。

LinkedList creat(ElemType A[],int n)//由含n个数据的数组A生成循环链表,要求链表有序并且无值重复结点{LinkedList h;h=(LinkedList)malloc(sizeof(LNode));//申请结点h->next=h; //形成空循环链表for(i=0;i<n;i++){pre=h;p=h->next;while(p!=h && p->data<A[i]){pre=p; p=p->next;} //查找A[i]的插入位置if(p==h || p->data!=A[i]) //重复数据不再输入{s=(LinkedList)malloc(sizeof(LNode));s->data=A[i]; pre->next=s; s->next=p;//将结点s链入链表中}}//forreturn(h);}算法结束4、4、void LinkList_reverse(Linklist &L)//链表的就地逆置;为简化算法,假设表长大于2{p=L->next;q=p->next;s=q->next;p->next=NULL;while(s->next){q->next=p;p=q;q=s;s=s->next; //把L的元素逐个插入新表表头}q->next=p;s->next=q;L->next=s;}//LinkList_reverse5、设t是给定的一棵二叉树,下面的递归程序count(t)用于求得:二叉树t中具有非空的左,右两个儿子的结点个数N2;只有非空左儿子的个数NL;只有非空右儿子的结点个数NR和叶子结点个数N0。

(完整版)数据结构题库多选题

(完整版)数据结构题库多选题

1 . 以下说法正确的是()A . 二叉树的特点是每个结点至多只有两棵子树。

B . 二叉树的子树无左右之分。

C . 二叉树只能进行链式存储。

D . 树的结点包含一个数据元素及若干指向其子树的分支。

答案:A,D解析:2 . 算法设计的要求包括____。

A . 正确性B . 可读性C . 健壮性D . 确定性答案:A,B,C解析:“确定性”属于算法特性而非要求。

3 . 下列属于算法的重要特征的是:A . 有穷性B . 确定性C . 可行性D . 输入和输出答案:A,B,C,D解析: ABCD4 . 图的四中存储结构A . 邻接矩阵B . 邻接表C . 邻接多重表D . 十字链表答案:A,B,C,D解析:5 . 依据所有数据成员之间的逻辑关系的不同,数据结构分为()A . 非线性结构B . 逻辑结构C . 物理结构D . 线性结构答案:A,D解析:6 . 图的应用算法有()A . 克鲁斯卡尔算法B . 哈弗曼算法C . 迪杰斯特拉算法D . 拓扑排序算法答案:A,C,D解析:7 . 计算机算法必须具备________________等特性。

A . 可行性、确定性B . 可行性、可移植性C . 输入、输出D . 有穷性E . 易读性F . 稳定性答案:A,C,D解析:8 . 下列数据结构中,属于线性数据结构的是____A . 栈B . 队列C . 树D . 图答案:A,B解析:9 . 下列说法正确的有:A . 算法和程序原则上没有区别,在讨论数据结构时二者通用B . 从逻辑关系上讲,数据结构分为两大类:线性结构和非线性结构C . 所谓数据的逻辑结构是指数据元素之间的逻辑关系D . 同一数据逻辑结构中的所有数据元素都具有相同的特性是指数据元素所包含的数据项的个数相等E . 数据的逻辑结构与数据元素本身的内容和形式无关F . 数据结构是指相互之间存在一种或多种关系的数据元素的全体答案:B,C,E解析:10 . 线性表的特点正确的()A . 存在唯一的一个被称作”第一个“的数据元素。

数据结构试题集(包含答案 完整版)

数据结构试题集(包含答案 完整版)

第一章概论一、选择题1、研究数据结构就是研究( D )。

A. 数据的逻辑结构B. 数据的存储结构C. 数据的逻辑结构和存储结构D. 数据的逻辑结构、存储结构及其基本操作2、算法分析的两个主要方面是( A )。

A. 空间复杂度和时间复杂度B. 正确性和简单性C. 可读性和文档性D. 数据复杂性和程序复杂性3、具有线性结构的数据结构是( D )。

A. 图B. 树C. 广义表D. 栈4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、( B )等5个特性。

A. 可执行性、可移植性和可扩充性B. 可执行性、有穷性和确定性C. 确定性、有穷性和稳定性D. 易读性、稳定性和确定性5、下面程序段的时间复杂度是( C )。

for(i=0;i<m;i++)for(j=0;j<n;j++)a[i][j]=i*j;A. O(m2)B. O(n2)C. O(m*n)D.O(m+n)6、算法是( D )。

A. 计算机程序B. 解决问题的计算方法C. 排序算法D. 解决问题的有限运算序列7、某算法的语句执行频度为(3n+nlog2n+n2+8),其时间复杂度表示( C )。

A. O(n)B. O(nlog2n)C. O(n2)D. O(log2n)8、下面程序段的时间复杂度为( C )。

i=1;while(i<=n)i=i*3;A. O(n)B. O(3n)C. O(log3n)D. O(n3)9、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的()和运算等的学科。

A. 结构B. 关系C. 运算D. 算法10、下面程序段的时间复杂度是(A )。

i=s=0;while(s<n){i++;s+=i;}A. O(n)B. O(n2)C. O(log2n)D. O(n3)11、抽象数据类型的三个组成部分分别为( A)。

A. 数据对象、数据关系和基本操作B. 数据元素、逻辑结构和存储结构C. 数据项、数据元素和数据类型D. 数据元素、数据结构和数据类型12、通常从正确性、易读性、健壮性、高效性等4个方面评价算法的质量,以下解释错误的是()。

2010青海省数据结构考试基础

2010青海省数据结构考试基础

1、对一般二叉树,仅根据一个先序、中序、后序遍历,不能确定另一个遍历序列。

但对于满二叉树,任一结点的左右子树均含有数量相等的结点,根据此性质,可将任一遍历序列转为另一遍历序列(即任一遍历序列均可确定一棵二叉树)。

void PreToPost(ElemType pre[] ,post[],int l1,h1,l2,h2)//将满二叉树的先序序列转为后序序列,l1,h1,l2,h2是序列初始和最后结点的下标。

{if(h1>=l1){post[h2]=pre[l1]; //根结点half=(h1-l1)/2; //左或右子树的结点数PreToPost(pre,post,l1+1,l1+half,l2,l2+half-1) //将左子树先序序列转为后序序列PreToPost(pre,post,l1+half+1,h1,l2+half,h2-1) //将右子树先序序列转为后序序列} }//PreToPost32. .叶子结点只有在遍历中才能知道,这里使用中序递归遍历。

设置前驱结点指针pre,初始为空。

第一个叶子结点由指针head指向,遍历到叶子结点时,就将它前驱的rchild指针指向它,最后叶子结点的rchild为空。

LinkedList head,pre=null; //全局变量LinkedList InOrder(BiTree bt)//中序遍历二叉树bt,将叶子结点从左到右链成一个单链表,表头指针为head{if(bt){InOrder(bt->lchild); //中序遍历左子树if(bt->lchild==null && bt->rchild==null) //叶子结点if(pre==null) {head=bt; pre=bt;} //处理第一个叶子结点else{pre->rchild=bt; pre=bt; } //将叶子结点链入链表InOrder(bt->rchild); //中序遍历左子树pre->rchild=null; //设置链表尾}return(head); } //InOrder时间复杂度为O(n),辅助变量使用head和pre,栈空间复杂度O(n)2、约瑟夫环问题(Josephus问题)是指编号为1、2、…,n的n(n>0)个人按顺时针方向围坐成一圈,现从第s个人开始按顺时针方向报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m的人又出列,…,如此重复直到所有的人全部出列为止。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、线性表的链接实现有利于( A )运算。

A)插入 B)读元素
C)查找 D)定位
2、已知栈的最大容量为4。

若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为( C )。

A) 5,4,3,2,1,6 B) 2,3,5,6,1,4
C) 3,2,5,4,1,6 D) 1,4,6,5,2,3
3、设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为( A )。

A)p->next=p->next->next; B) p=p->next;
C)p=p->next->next; D) p->next=p;
4、二叉树第i(i≥1)层上至多有( C )结点。

A)2i B)2i C)2i-1 D)2i-1
5、如果结点A有3个兄弟,而且B为A的双亲,则B的度为( B )。

A)3 B)4 C)5 D)1
6、在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,则须执行( A )。

A)q->next=s; s->next=p; B)s->next=p->next; p->next=s;
C)p->next=s->next; s->next=p D)p->next=s; s->next=q;
7、下列序列中,执行第一趟快速排序后得到的序列是( A )。

A)[d,a,e,d,b]f[h,g] B) [c,e,a,d]f[h,g,b]
C) [g,a,e,c,b]f[d,h] D) [a,b,c,d,]f[e,g,h]
8、已知广义表L=((x,y,z),a,(u,t,w)),从L 表中取出原子项t 的操作是( D )。

A) Head(Head(Tail(Tail(L))))
B) Tail(Head(Head(Tail(L))))
C) Head(Tail(Head(Tail(L))))
D)Head(Tail(Head(Tail(Tail(L)))))
9、n个顶点,e条边的有向图的邻接矩阵中非零元素有( C )个。

A)n B)2e C)e D) n+e
10、下列各种数据结构中属于线性结构的有( A )。

A)栈 B) 二叉树
C) 广义表 D) 图
11、对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列施加同样的排序操作,直到子序列为空或只剩一个元素为止。

这样的排序方法是( A )。

A)直接选择排序 B)直接插入排序
C)快速排序 D)起泡排序
12、在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,则须执行( A )。

A)q->next=s; s->next=p; B)s->next=p->next; p->next=s;
C)p->next=s->next; s->next=p D)p->next=s; s->next=q;
13、向一个栈顶指针为hs的链栈中插入一个s结点时,应执行( D )。

A) hs->next=s; B) s->next=hs->next; hs->next=s;
C) s->next=hs; hs=s; D) s->next=hs; hs=hs->next;。

相关文档
最新文档