2011内蒙古自治区数据结构(C++)试题及答案

合集下载

数据结构与算法课程C语言上机考试题—2011

数据结构与算法课程C语言上机考试题—2011

1、从键盘输入10个整数,用冒泡法对这10个数排序(由小到大)后输出。

2、从键盘输入10个整数,用选择法对这10个数排序(由大到小)后输出。

3、对于一个自然数,如果该数的所有因子之和正好等于该数,则该数称为完数。

统计1000以内的完数个数。

4、编写主函数和一个函数int diff(int year, int m1, int d1, int m2, int d2)。

(1)函数diff计算year年的m1月d1日至m2月d2日之间相隔的天数(假设m1<=m2);(2)主函数中输入某年的两个日期,调用diff函数计算它们之间相隔的天数,并输出。

5、编写主函数和一个函数void merge(int *a, int *b, int c[])。

要求是:(1)函数merge对两个已是升序的数组a、b进行归并,归并后的结果仍然是升序的,并通过形参c返回;(2)主函数:定义长度为5的数组a,并升序初始化;定义长度为8的数组b,并升序初始化;调用merge函数对数组a、b进行归并,输出归并结果。

6、从键盘输入一个0~99999之间的整数。

①判断它是一个几位数;②将该数的各位数字按逆序输出。

7、输入一行字符,统计其中有多少个单词并输出,单词之间用空格符分隔开。

8、输入10个整数,判断它们是否为素数。

要求:编写一个函数int prime(int m)来判断形参变量m是否为素数,如果是素数则返回1,否则返回0。

9、输入10个学生的成绩,求平均成绩。

要求控制成绩输入的正确性,即控制输入的成绩必须为0~100分。

10、编写主函数和一个函数int monthDay(int year, int month)。

(1)函数monthDay 计算year年month月的天数,并返回;(2)在主函数中输入一个日期(年、月、日),计算该日是当年的第几天(说明:需要调用monthDay函数)。

11、写两个函数int gcd(int m, int n)和int lcm(int m, int n),分别求两个正整数m 和n的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个正整数的值在主函数中从键盘输入。

数据结构2011年期中考试-答案

数据结构2011年期中考试-答案

2011计本期中考试试题数据结构答题纸姓名:学号:序号:成绩:注意事项:本试卷满分100分,考试时间90分钟;一. 单项选择题,每空有一个正确选择,请将正确的选择填在____上。

(每空2分,共20分)1. D2. ____b__, __h____。

3. _________a___。

4. __________a__。

5. ___________d_。

6. ____________c。

7. B8. D。

9. ________无_____。

ABC+*DE-F+/二. 填空题,请将正确答案填在____上。

(每空2分,共30分)1. _________一对一___, ___多对多_________。

2. _____n-i_______n-i-1。

3. ______O(1)______; _____O(n)_______。

4. _________MaxSize-1___。

5. 栈顶队尾队头6. _____栈_______。

7. _________5___。

8. ______p->next______ _____S_______。

9. ___O(n)_________。

三. 判断题,正确者在()中打√,错误者在()中打×。

(每小题2分,共20分)1.(×)2.(×)3.(×)4.(×)5.(×)6.(×)7.(√)8.(√)9.(×)10.(×)一个长度为n(n>1)的单链表,已知有头和尾两个指针,则执行B 操作与链表的长度有关。

A. 删除单链表中的第一个元素B. 删除单链表中的最后一个元素C. 在单链表第一个元素前插入一个新元素D. 在单链表最后一个元素后插入一个新元素四. 问答题。

(每小题5分,共30分)1. p->prior->next=p->next;p->next->prior=p->pror;free(p);2. p->prior; s->prior->next3.((1,4,3),(2,1,4), (2,6,1),(3,2,3),(4,5,5),(5,3,1))4. 3,3p1225.空:rear == front满:(rear+1)%MaxSize == front进队操作:rear = (rear+1)%MaxSize; Q(rear)=x出队操作:front = (front+1)%MaxSize; X=Q(front)6.。

自考数据结构试题及答案

自考数据结构试题及答案

数据结构自考试题及答案一、选择题1. 数据结构是一种抽象的数据类型,它包括(A)A. 数据的逻辑结构、存储结构和数据的运算B. 数据的逻辑结构、数据的运算C. 数据的存储结构、数据的运算D. 数据的逻辑结构、存储结构答案:A2. 在线性表中,第一个元素的位置是(B)A. 0B. 1C. -1D. 任意答案:B3. 在下列数据结构中,哪个是非线性结构?(D)A. 线性表B. 队列C. 栈D. 树答案:D二、填空题4. 线性表的顺序存储结构中,数据元素之间的逻辑关系是通过它们的(物理位置)来实现的。

5. 在链式存储结构中,每个结点至少包含两个成员,一个是存储元素的数据域,另一个是存储下一个结点地址的(指针域)。

6. 对于一个栈,其基本操作包括(入栈)、(出栈)和(取栈顶元素)。

三、判断题7. 线性表的顺序存储结构一定比链式存储结构更节省存储空间。

(错误)答案:错误8. 在链表中进行插入和删除操作比在顺序表中更高效。

(正确)答案:正确四、简答题9. 简述队列和栈的区别。

答案:队列是一种先进先出(FIFO)的数据结构,元素只能在一端插入,另一端删除;而栈是一种先进后出(FILO)的数据结构,元素只能在栈顶插入和删除。

在队列中,最先进入的元素最先被删除,而在栈中,最后进入的元素最先被删除。

10. 简述二叉树中的遍历方法。

答案:二叉树的遍历方法有三种:前序遍历、中序遍历和后序遍历。

前序遍历是指先访问根结点,然后遍历左子树,最后遍历右子树;中序遍历是指先遍历左子树,然后访问根结点,最后遍历右子树;后序遍历是指先遍历左子树,然后遍历右子树,最后访问根结点。

五、应用题11. 编写一个C程序,实现一个顺序表的创建、插入、删除和遍历操作。

```cinclude <stdio.h>include <stdlib.h>define MAX_SIZE 100typedef struct {int data[MAX_SIZE];int length;} SeqList;// 初始化顺序表void InitList(SeqList *L) {L->length = 0;}// 插入操作int ListInsert(SeqList *L, int i, int e) {if (i < 1 || i > L->length + 1 || L->length == MAX_SIZE) {return 0;}for (int j = L->length; j >= i; j--) { L->data[j] = L->data[j - 1];}L->data[i - 1] = e;L->length++;return 1;}// 删除操作int ListDelete(SeqList *L, int i) {if (i < 1 || i > L->length) {return 0;}for (int j = i; j < L->length; j++) { L->data[j - 1] = L->data[j];}L->length--;return 1;}// 遍历操作void TraverseList(SeqList L) {for (int i = 0; i < L.length; i++) { printf("%d ", L.data[i]);}printf("\n");}int main() {SeqList L;InitList(&L);ListInsert(&L, 1, 10);ListInsert(&L, 2, 20);ListInsert(&L, 3, 30);TraverseList(L);ListDelete(&L, 2);TraverseList(L);return 0;}```12. 请给出一个二叉树的中序遍历非递归算法。

2011数据结构模拟真题2

2011数据结构模拟真题2

一、选择题1. 评价一个算法时间性能的主要标准是(D )。

A、算法易于调试B、算法易于理解C、算法的稳定性和正确性D、算法的时间复杂度2. 计算机算法具备有输入、输出、(B )等五个特性。

A、可行性、可移植性和可扩充性B、可行性、确定性和有穷性C、确定性、有穷性和稳定性D、易读性、稳定性和安全性3. 带头结点的单链表head为空的判定条件是(B )。

A、head==NULLB、head->next==NULLC、head->next==headD、head!=NULL4. 以下关于线性表的说法不正确的是( C)。

A、线性表中的数据元素可以是数字、字符、记录等不同类型。

B、线性表中包含的数据元素个数不是任意的。

C、线性表中的每个结点都有且只有一个直接前趋和直接后继。

D、存在这样的线性表:表中各结点都没有直接前趋和直接后继。

5. 在顺序表中,只要知道(D ),就可在相同时间内求出任一结点的存储地址。

A、基地址B、结点大小C、向量大小D、基地址和结点大小6. ( C)运算中,使用顺序表比链表好。

A、插入B、删除C、根据序号查找D、根据元素值查找7. 一个长度为n的顺序表中,向第i个元素之前插入一个新元素时,需要向后移动(B)个元素。

A、n-iB、n-i+1C、n-i-1D、i8. (D )适合作为经常在首尾两端操作线性表的存储结构。

A、顺序表B、单链表C、循环链表D、双向链表9. 栈和队列的共同点是(C)A、都是先进后出B、都是先进先出C、只允许在端点处插入和删除元素D、没有共同点10. 一个队列的入列序列是1 2 3 4,则队列的输出序列是(B )。

A、4 3 2 1B、1 2 3 4C、1 4 3 2D、3 2 4 111. 队列与一般的线性表的区别在于(D )。

A、数据元素的类型不同B、运算是否受限制C、数据元素的个数不同D、逻辑结构不同12. “假上溢”现象会出现在(C )中。

A、循环队列B、队列C、链队列D、顺序队列二、填空题1.数据的逻辑结构被分为集合、线性结构、树形结构和图结构。

2011《数据结构》期末试卷_A卷(答案)

2011《数据结构》期末试卷_A卷(答案)

厦门大学《_数据结构_》课程期末试卷信息科学与技术学院计算机科学系2009年级___专业主考教师:陈怡疆庄朝晖试卷类型:(A卷)一、(本题10分)(1)线性表和广义表的主要区别是什么?(2)已知广义表:C=(a,(b,(a,b)),((a,b),(a,b))),则tail(head(tail(C)))=?答案:(1)线性表和广义表都是元素a1,a2,…,an组成的序列,其主要区别点在于:在线性表中,ai是单个元素(原子);在广义表中,ai可以是单个元素(原子),也可以是广义表。

(7分)(2)tail(head(tail(C)))=((a,b))(3分)二、(本题10分)简述二叉树的两种存储结构(顺序存储和链式存储)的数据结构及主要优缺点。

在哈夫曼树中,使用哪种存储结构,并说明理由。

答案:顺序存储结构:typed efSqBiTree[Max_Tree_Size];特点:使用数组存储二叉树上的结点元素,按照对应的完全二叉树的编号来存储二叉树。

优点是适用于完全二叉树,访问方便。

缺点是对于一般二叉树,较大地浪费了空间。

(4分)链式存储结构:typed efstrutBiTNod e{TEl emTypedata;structBiTNod e*l chil d,*rchil d;}BiTNod e,*BiTree;页脚内容1特点:使用结构体来表示结点元素,使用指针来指向结点的左右孩子。

优点是插入与删除方便,节省空间,缺点是不能快速地随机访问结点元素。

(4分)在哈夫曼树中,使用静态三叉链表,这样可以方便地从根走到叶子,也可以从叶子走到根,而且可以随机访问和节省空间。

(2分)三、(本题10分)一棵二叉树的先序、中序和后序序列分别如下,其中有一部分未显示出来,试求出空格处的内容,并画出该二叉树。

先序序列:__B__F__ICEH__G;中序序列:D__KFIA__EJC__;后序序列:__K__FBHJ__G__A。

(完整word版)数据结构(c语言版)课后习题答案完整版资料

(完整word版)数据结构(c语言版)课后习题答案完整版资料

第1章绪论5.选择题:CCBDCA6.试分析下面各程序段的时间复杂度。

(1)O(1)(2)O(m*n)(3)O(n2)(4)O(log3n)(5)因为x++共执行了n—1+n—2+……+1= n(n—1)/2,所以执行时间为O(n2)(6)O(n)第2章线性表1.选择题babadbcabdcddac2.算法设计题(6)设计一个算法,通过一趟遍历在单链表中确定值最大的结点。

ElemType Max (LinkList L ){if(L—〉next==NULL) return NULL;pmax=L-〉next;//假定第一个结点中数据具有最大值p=L-〉next—>next;while(p != NULL ){//如果下一个结点存在if(p->data > pmax—>data) pmax=p;p=p->next;}return pmax-〉data;(7)设计一个算法,通过遍历一趟,将链表中所有结点的链接方向逆转,仍利用原表的存储空间.void inverse(LinkList &L) {// 逆置带头结点的单链表Lp=L-〉next;L->next=NULL;while (p){q=p—>next;// q指向*p的后继p->next=L—>next;L—>next=p; // *p插入在头结点之后p = q;}}(10)已知长度为n的线性表A采用顺序存储结构,请写一时间复杂度为O(n)、空间复杂度为O(1)的算法,该算法删除线性表中所有值为item的数据元素.[题目分析]在顺序存储的线性表上删除元素,通常要涉及到一系列元素的移动(删第i个元素,第i+1至第n个元素要依次前移)。

本题要求删除线性表中所有值为item的数据元素,并未要求元素间的相对位置不变。

因此可以考虑设头尾两个指针(i=1,j=n),从两端向中间移动,凡遇到值item的数据元素时,直接将右端元素左移至值为item的数据元素位置。

数据结构考试试题及答案

数据结构考试试题及答案一、选择题(每题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. 数据操作 答案:B 2. 在数据结构中,线性结构的特点是( )。 A. 有且只有一个根节点 B. 每个节点最多有一个前件,也最多有一个后件 C. 每个节点最多有一个前件,也最多有一个前驱 D. 每个节点最多有一个后件,也最多有一个后继 答案:B 3. 下面哪一个不是栈的基本操作? A. 入栈 B. 出栈 C. 初始化 D. 求栈的长度 答案:D 4. 下面哪一个不是队列的基本操作? A. 入队 B. 出队 C. 初始化 D. 求队列的长度 答案:C 5. 在下列排序算法中,哪一个不是稳定的排序算法?

A. 冒泡排序 B. 选择排序 C. 插入排序 D. 归并排序 答案:B 6. 在二叉树中,具有3个节点的二叉树有( )种形态。

A. 5 B. 6 C. 7 D. 8 答案:B 7. 下面哪一个不是图的存储结构? A. 邻接矩阵 B. 邻接表 C. 边集数组 D. 稀疏矩阵 答案:D 8. 下面哪一个不是树的遍历方法? A. 深度优先遍历 B. 广度优先遍历 C. 先序遍历 D. 后序遍历 答案:B 9. 在下列排序算法中,哪一个算法的时间复杂度最低?

A. 冒泡排序 B. 快速排序 C. 堆排序 D. 归并排序 答案:C 10. 下面哪一个不是哈希表的冲突解决方法? A. 开放地址法 B. 链地址法 C. 再哈希法 D. 建立索引法 答案:D 二、填空题(每题2分,共20分) 1. 数据结构包括数据的________、________、________和________四个方面。

答案:逻辑结构、存储结构、数据元素、数据操作 2. 栈是一种________的线性表,其插入和删除运算都在表的一端进行。

答案:后进先出 3. 队列是一种________的线性表,其插入运算在表的一端进行,而删除运算在表的另一端进行。

数据结构的试题及答案

数据结构的试题及答案一、选择题(每题2分,共10分)1. 在数据结构中,()是数据元素之间的相互关系的集合。

A. 数据B. 结构C. 存储结构D. 逻辑结构答案:D2. 线性表的顺序存储结构中,存储元素的物理位置是()。

A. 连续的B. 离散的C. 任意的D. 无关的答案:A3. 在二叉树的遍历方法中,先访问根节点,然后遍历左子树,最后遍历右子树的遍历方式是()。

A. 前序遍历B. 中序遍历C. 后序遍历D. 层序遍历答案:A4. 哈希表的冲突解决方法中,()是将所有发生冲突的元素存储在同一个链表中。

A. 线性探测B. 链地址法C. 再散列D. 双散列答案:B5. 在图的遍历算法中,深度优先搜索(DFS)算法使用的辅助数据结构是()。

A. 栈B. 队列C. 链表D. 数组答案:A二、填空题(每题2分,共10分)1. 在数据结构中,算法的时间复杂度通常用()表示。

答案:O(n)2. 一个栈的初始状态为空,依次执行了Push(1), Push(2), Pop(), Push(3), Pop()操作后,栈顶元素是()。

答案:13. 在二叉搜索树中,对于任意节点,其左子树中的所有值都()该节点的值。

答案:小于4. 哈希表的装载因子是表中已填入的元素个数与哈希表的()之比。

答案:总容量5. 图的邻接矩阵表示法中,如果两个顶点之间有边相连,则对应的矩阵元素值为()。

答案:1三、简答题(每题5分,共20分)1. 请简述什么是递归,并给出一个递归算法的例子。

答案:递归是一种算法设计技巧,它允许一个函数直接或间接地调用自身。

递归算法的例子是计算阶乘:n! = n * (n-1)!,其中n! = 1当n=0时。

2. 请解释什么是堆排序,并简述其基本步骤。

答案:堆排序是一种基于堆数据结构的比较排序算法。

基本步骤包括构建最大堆,然后重复移除堆顶元素并调整剩余元素以保持最大堆属性。

3. 请描述什么是图的广度优先搜索(BFS)算法,并给出其算法步骤。

数据结构C语言版期末考试试题(有答案)

抽出时间去学习,凡事从小做起,不怕单调和重复,长期的积累坚持,想不成功,也难。

"数据结构”期末考试试题一、单选题(每小题2分共12分)1.在一个单链表HL中若要向表头插入一个由指针p指向的结点则执行()A. HL=ps p一〉next=HLB. p一>next=HL;HL=p3C. p一>next=Hl;p=HL;D. p一〉next=HL一>next;HL一〉next=p;2.n个顶点的强连通图中至少含有()A。

n—l条有向边 B.n条有向边C.n(n—1)/2条有向边D.n(n一1)条有向边3.从一棵二叉搜索树中查找一个元素时其时间复杂度大致为( )A.O(1) B。

O(n)C.O(1Ogzn)D.O(n2)4.由权值分别为38625的叶子结点生成一棵哈夫曼树它的带权路径长度为( )A.24 B.48C. 72 D. 535.当一个作为实际传递的对象占用的存储空间较大并可能需要修改时应最好把它说明为( )参数以节省参数值的传输时间和存储参数的空间A.整形 B。

引用型C。

指针型 D。

常值引用型·6.向一个长度为n的顺序表中插人一个新元素的平均时间复杂度为( )A.O(n) B.O(1)C.O(n2) D.O(10g2n)二、填空题(每空1分共28分)1.数据的存储结构被分为——、——、——和--四种2.在广义表的存储结构中单元素结点与表元素结点有一个域对应不同各自分别为-—域和——域3.——中缀表达式 3十x*(2。

4/5—6)所对应的后缀表达式为—-——4.在一棵高度为h的3叉树中最多含有—-结点5.假定一棵二叉树的结点数为18则它的最小深度为-—最大深度为--·6.在一棵二叉搜索树中每个分支结点的左子树上所有结点的值一定-—该结点的值右子树上所有结点的值一定-—该结点的值7.当向一个小根堆插入一个具有最小值的元素时该元素需要逐层-—调整直到被调整到--位置为止8.表示图的三种存储结构为——、——和---9.对用邻接矩阵表示的具有n个顶点和e条边的图进行任一种遍历时其时间复杂度为—-对用邻接表表示的图进行任一种遍历时其时间复杂度为—-10.从有序表(1218304356788295)中依次二分查找43和56元素时其查找长度分别为—-和-—·11.假定对长度n=144的线性表进行索引顺序查找并假定每个子表的长度均为则进行索引顺序查找的平均查找长度为——时间复杂度为——·12.一棵B-树中的所有叶子结点均处在——上13.每次从无序表中顺序取出一个元素把这插入到有序表中的适当位置此种排序方法叫做——排序;每次从无序表中挑选出一个最小或最大元素把它交换到有序表的一端此种排序方法叫做-—排序14.快速排序在乎均情况下的时间复杂度为——最坏情况下的时间复杂度为—-三、运算题(每小题6分共24分)1.假定一棵二叉树广义表表示为a(b(cd)c(((8)))分别写出对它进行先序、中序、后序和后序遍历的结果先序:中序;后序:2.已知一个带权图的顶点集V和边集G分别为: V={012345};E={(01)8(02)5(03)2(15)6(23)25(24)13(35)9(45)10}则求出该图的最小生成树的权最小生成树的权;3.假定一组记录的排序码为(4679563840845042)则利用堆排序方法建立的初始堆为—-4.有7个带权结点其权值分别为378261014试以它们为叶子结点生成一棵哈夫曼树求出该树的带权路径长度、高度、双分支结点数带权路径长度:-—高度:-—双分支结点数:-—四、阅读算法回答问题(每小题8分共16分)1.VOldAC(List&L){InitList(L);InsertRear(L;25);InsertFront(L50);IntaL4]={58121536};for(inti=0; i〈5; i++)if (a[i]%2==0)InsertFront(La[i]);elselnsertRear(La[i]);}该算法被调用执行后得到的线性表L为:2.void AG(Queue&Q){InitQueue(Q);inta[5]={6125158};for(int i=0;i〈5; i++)QInsert(Qa[i]);QInsert(QQDelete(Q));QInsert(Q20);QInsert(QQDelete(Q)十16);while(!QueueEmpty(Q))cout〈<QDelete(Q)〈〈”; }该算法被调用后得到的输出结果为:五、算法填空在画有横线的地方填写合适的内容(每小题6分共12分)1.从一维数组A[n)中二分查找关键字为K的元素的递归算法若查找成功则返回对应元素的下标否则返回一1IntBinsch(ElemTypeA[]Intlowint highKeyTypeK){if(low〈=high){int mid=(low+high)/2;if(K==A[mid].key)—-;else if (K<A[mid].key)-—;else ;}else return—l;}2.已知二叉树中的结点类型BinTreeNode定义为:structBinTreeNode{ElemType data;BinTreeNode*left*right};其中data为结点值域left和right分别为指向左、右子女结点的指针域下面函数的功能是返回二叉树BT中值为x的结点所在的层号请在划有横线的地方填写合适内容Int NodeLevel(BinTreeNode * BTElemType X){if(BT:=NULL)return 0;//空树的层号为0else if(BT一>data==X)return 1; //根结点的层号为1 //向子树中查找x结点else{int cl=NodeLevel(BT一>leftX);if(cl>=1)return cl+1;int c2=;if-—;//若树中不存在X结点则返回oelse return 0;}}六、编写算法(8分)按所给函数声明编写一个算法从表头指针为HL的单链表中查找出具有最大值的结点该最大值由函数返回若单链表为空则中止运行EIemType MaxValue(LNOde*HL);”数据结构”期末考试试题答案一、单选题(每小题2分共12分)评分标准;选对者得2分否则不得分1.B 2.B 3.C 4.D 5.B 6.A二、填空题(每空1分共28分)1.顺序结构链接结构索引结构散列结构(次序无先后) 2.值(或data) 子表指针(或sublist)3.3 x 2.4 5/6一*十4.(3h一1)/25. 5 186.小于大于(或大于等于)7.向上堆顶8.邻接矩阵邻接表边集数组(次序无先后)9.O(n2) O(e)10. 1 311.13 O()12.同一层13.插人选择14.O(nlog2n) O(n2)三、运算题(每小题6分共24分)1.先序:abcdefe //2分中序:cbdaf8e //2分后序:cdbefea //2分2.最小生成树的权:31 //6分3.(8479564240465038)//6分4.带权路径长度:131 //3分高度:5 //2分双分支结点数:6 //1分四、阅读算法回答问题(每小题8分共16分)评分标准:每小题正确得8分出现一处错误扣4分两处及以上错误不得分1.(361285025515)2.5 15 8 6 20 28五、算法填空在画有横线的地方填写合适的内容(每小题6分共12分)1.feturn mid //2分returnBinsch(Alowmid一1K) //2分returnBmsch(Amid+1highK)//2分2.NodeLevel(BT一>rightX) //3分(c2〉=1)returnc2十1 //3分六、编写算法(8分)评分标准:请参考语句后的注释或根据情况酌情给分ElemType MaxValue(LNodeO* HL){if (HL==NUlL){//2分cerr〈<”Linked llst is empty!"<〈endl;exit(1);}ElemTypemax:HL一〉data;//3分LNOde*p=HI一>next; //4分while(P!:NULL){ //7分if(max<p一>data)max=p一〉data;p=p一〉next;}returnmax;//8分}数据结构复习资料一、填空题1. 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和运算等的学科2. 数据结构被形式地定义为(DR)其中D是数据元素的有限集合R是D上的关系有限集合3。

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

1、数据结构中,在逻辑上可以把数据结构分成( B )。
A)动态结构和静态结构
B)线性结构和非线性结构
C)紧凑结构和非紧凑结构
D)内部结构和外部结构

2、设一数列的顺序为1,2,3,4,5,6,通过栈结构不可能排成的顺序数列为( B )。
A)3,2,5,6,4,1 B)1,5,4,6,2,3
C)2,4,3,5,1,6 D)4,5,3,6,2,1

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

4、倘若在对串的插入、删除运算中,期望运算速度最快,则应采用( C )。
A)顺序表示法 B)单字符为结点的单链表表示法
C)等量分块表示法 D)不等量分块表示法

5、在一个单链表中,已知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;

6、与无向图相关的术语有( C )。
A)强连通图 B)入度
C)路径 D)弧

7、某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用
( D )存储方式最节省运算时间。
A) 单链表 B) 仅有头指针的单循环链表
C) 双链表 D) 仅有尾指针的单循环链表

8、二叉树第i(i≥1)层上至多有( C )结点。
A)2i B)2i C)2i-1 D)2i-1

9、有一个有序表{1,4,6,10,18,35,42,53,67,71,78,84,92,99}。当用二分查
找法查找键值为84的结点时,经( B )比较后查找成功。
A) 4 B)3 C)2 D)12

10、与无向图相关的术语有( C )。
A)强连通图 B)入度
C)路径 D)弧
11、n个顶点的强连通图至少有( A )条边。
A)n B)n+1 C)n-1 D)n(n-1)

12、下列序列中,执行第一趟快速排序后得到的序列是( 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]

相关文档
最新文档