北京工业大学 数据结构 期末复习
《数据结构》期末考试复习题 第1章 绪论
第1章绪论一、选择题1. 算法的计算量的大小称为计算的()。
【北京邮电大学2000 二、3 (20/8分)】A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于()【中科院计算所 1998 二、1 (2分)】A.问题的规模 B. 待处理数据的初态 C. A和B3.计算机算法指的是(1),它必须具备(2)这三个特性。
(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法(2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、安全性【南京理工大学 1999 一、1(2分)【武汉交通科技大学 1996 一、1( 4分)】4.一个算法应该是()。
【中山大学 1998 二、1(2分)】A.程序 B.问题求解步骤的描述 C.要满足五个基本特性 D.A和C.5. 下面关于算法说法错误的是()【南京理工大学 2000 一、1(1.5分)】A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的6. 下面说法错误的是()【南京理工大学 2000 一、2 (1.5分)】(1)算法原地工作的含义是指不需要任何额外的辅助空间(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(4)同一个算法,实现语言的级别越高,执行效率就越低A.(1) B.(1),(2) C.(1),(4) D.(3)7.从逻辑上可以把数据结构分为()两大类。
【武汉交通科技大学 1996 一、4(2分)】A.动态结构、静态结构 B.顺序结构、链式结构C.线性结构、非线性结构 D.初等结构、构造型结构8.以下与数据的存储结构无关的术语是()。
【北方交通大学 2000 二、1(2分)】A.循环队列 B. 链表 C. 哈希表 D. 栈9.以下数据结构中,哪一个是线性结构()?【北方交通大学 2001 一、1(2分)】A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串10.以下那一个术语与数据的存储结构无关?()【北方交通大学 2001 一、2(2分)】A.栈 B. 哈希表 C. 线索树 D. 双向链表11.在下面的程序段中,对x的赋值语句的频度为()【北京工商大学 2001 一、10(3分)】FOR i:=1 TO n DOFOR j:=1 TO n DOx:=x+1;A. O(2n) B.O(n) C.O(n2) D.O(log2n)12.程序段 FOR i:=n-1 DOWNTO 1 DOFOR j:=1 TO i DOIF A[j]>A[j+1]THEN A[j]与A[j+1]对换;其中 n为正整数,则最后一行的语句频度在最坏情况下是()A. O(n)B. O(nlogn)C. O(n3)D. O(n2)【南京理工大学1998一、1(2分)】13.以下哪个数据结构不是多型数据类型()【中山大学 1999 一、3(1分)】A.栈 B.广义表 C.有向图 D.字符串14.以下数据结构中,()是非线性数据结构【中山大学 1999 一、4】A.树 B.字符串 C.队 D.栈15. 下列数据中,()是非线性数据结构。
《数据结构》期末考试试卷试题及答案
《数据结构》期末考试试卷试题及答案第一部分:选择题(每题2分,共20分)1. 下面哪个数据结构是线性结构?A. 树B. 图C. 队列D. 网络流2. 下面哪个数据结构用于实现广度优先搜索算法?A. 栈B. 队列C. 散列表D. 堆3. 下面哪个数据结构用于实现深度优先搜索算法?A. 栈B. 队列C. 散列表D. 堆4. 下面哪个数据结构用于实现快速排序算法?A. 栈B. 队列C. 散列表D. 堆5. 下面哪个数据结构用于实现优先队列?A. 栈B. 队列C. 散列表D. 堆6. 下面哪个数据结构用于实现哈希表?A. 栈B. 队列C. 散列表D. 堆7. 下面哪个数据结构用于实现最小树算法?A. 栈B. 队列C. 散列表D. 堆8. 下面哪个数据结构用于实现拓扑排序算法?A. 栈B. 队列C. 散列表D. 堆9. 下面哪个数据结构用于实现最短路径算法?A. 栈B. 队列C. 散列表D. 堆10. 下面哪个数据结构用于实现并查集算法?A. 栈B. 队列C. 散列表D. 堆第二部分:填空题(每题2分,共20分)1. 链表是一种______数据结构。
2. 二叉树的节点最多有______个子节点。
3. 堆是一种特殊的______。
4. 散列表的查找效率取决于______。
5. 图的遍历算法包括______和______。
6. 快速排序算法的平均时间复杂度为______。
7. 哈希表中的冲突解决方法有______和______。
8. 最小树算法包括______和______。
9. 最短路径算法包括______和______。
10. 并查集算法用于解决______问题。
第三部分:简答题(每题10分,共50分)1. 请简述栈和队列的区别。
2. 请简述二叉搜索树的特点。
3. 请简述哈希表的原理。
4. 请简述图的深度优先搜索算法。
5. 请简述最小树算法的原理。
第四部分:编程题(每题20分,共50分)1. 编写一个函数,实现链表的插入操作。
数据结构复习题及参考答案
数据结构复习题及参考答案《数据结构》课程复习资料一、填空题:1.设需要对5个不同的记录关键字进行排序,则至少需要比较________次,至多需要比较__________次。
2.设二叉排序树的高度为h,则在该树中查找关键字key最多需要比较_________次。
3.设在长度为20的有序表中进行二分查找,则比较一次查找成功的结点数有_________个,比较两次查找成功有结点数有_________个。
4.数据结构从逻辑上划分为三种基本类型:___________、__________和___________。
5.在一个具有n个顶点的无向完全图中,包含有________条边,在一个具有n个顶点的有向完全图中,包含有________条边。
6.向一棵B_树插入元素的过程中,若最终引起树根结点的分裂,则新树比原树的高度___________。
7.在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为________,整个堆排序过程的时间复杂度为________。
8.在快速排序、堆排序、归并排序中,_________排序是稳定的。
9.在有n个叶子结点的哈夫曼树中,总结点数是_______。
10.一棵树T采用二叉链表存储,如果树T中某结点为叶子结点,则在二叉链表BT中所对应的结点一定_______。
11.3.已知数组A[10][10]为对称矩阵,其中每个元素占5个单元。
现将其下三角部分按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A[5,6]对应的地址是_______。
12.在有n个结点的无向图中,其边数最多为_______。
13.取出广义表A=(x,(a,b,c,d))中原子x的函数是_______。
14.对矩阵采用压缩存储是为了___ ____。
15.带头结点的双循环链表L为空表的条件是_______。
16.设线性表中元素的类型是实型,其首地址为1024,则线性表中第6个元素的存储位置是。
北京工业大学十套数据结构试题及答案
已知一个图的顶点集 V 和边集 E 分别为:V={1,2,3,4,5,6,7}; E={(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15, (3,5)12,(3,6)9,(4,6)4,(4,7)20,(5,6)18,(6,7)25}; 用克鲁斯卡尔算法得到最小生成树,试写出在最小生成树中依次得到的各条边。 4. 画出向小根堆中加入数据 4, 2, 5, 8, 3 时,每加入一个数据后堆的变化。 四、阅读算法(每题 7 分,共 14 分) 1. LinkList mynote(LinkList L) {//L 是不带头结点的单链表的头指针 if(L&&L->next){ q=L;L=L->next;p=L; S1: while(p->next) p=p->next; S2: p->next=q;q->next=NULL; 3. L; } 请回答下列问题: (1)说明语句 S1 的功能; (2)说明语句组 S2 的功能; (3)设链表表示的线性表为(a1,a2, …,an),写出算法执行后的返回值所表示的线性 表。 2. void ABC(BTNode * BT) { if BT { ABC (BT->left); ABC (BT->right); cout<<BT->data<<' '; } } 该算法的功能是:
数据结构试卷(二)
一、选择题(24 分) 1.下面关于线性表的叙述错误的是( ) 。 (A) 线性表采用顺序存储必须占用一片连续的存储空间 (B) 线性表采用链式存储不必占用一片连续的存储空间 (C) 线性表采用链式存储便于插入和删除操作的实现 (D) 线性表采用顺序存储便于插入和删除操作的实现 2.设哈夫曼树中的叶子结点总数为 m,若用二叉链表作为存储结构,则该哈夫曼树中总共 有( )个空指针域。 (A) 2m-1 (B) 2m (C) 2m+1 (D) 4m 3.设顺序循环队列 Q[0:M-1]的头指针和尾指针分别为 F 和 R,头指针 F 总是指向队头元素 的前一位置,尾指针 R 总是指向队尾元素的当前位置,则该循环队列中的元素个数为 ( ) 。 (A) R-F (B) F-R (C) (R-F+M)%M (D) (F-R+M)%M 4.设某棵二叉树的中序遍历序列为 ABCD,前序遍历序列为 CABD,则后序遍历该二叉树 得到序列为( ) 。 (A) BADC (B) BCDA (C) CDAB (D) CBDA 5.设某完全无向图中有 n 个顶点,则该完全无向图中有( )条边。 2 2 (A) n(n-1)/2 (B) n(n-1) (C) n (D) n -1 6.设某棵二叉树中有 2000 个结点,则该二叉树的最小高度为( ) 。 (A) 9 (B) 10 (C) 11 (D) 12 7.设某有向图中有 n 个顶点,则该有向图对应的邻接表中有( )个表头结点。 (A) n-1 (B) n (C) n+1 (D) 2n-1 8.设一组初始记录关键字序列(5,2,6,3,8),以第一个记录关键字 5 为基准进行一趟快 速排序的结果为( ) 。 (A) 2,3,5,8,6 (B) 3,2,5,8,6 (C) 3,2,5,6,8 (D) 2,3,6,5,8
《数据结构》期末考试复习题及参考答案
数据结构复习题(课程代码 252259)一、填空题(本大题共40小题)1.队列中是按照______先进先出______的原则进行数据元素的增删。
2.___栈__又称为LIFO表。
3.在顺序存储的完全二叉树中,若编号为i的结点有左孩子结点,则其右孩子结点的编号为___2i+1___。
4.存储地址与关键字之间存在某种映射关系的存储结构为_______散列存储结构_______。
5.在串S=“structure”中,以r为首字符的子串有_9_个。
6.设有整型二维数组M[4][3],每个元素(整数)占2个存储单元,元素按行的顺序存储,数组的起始地址为200,元素M[1][1]的地址是___208____。
7.在一个具有n个顶点的无向完全图中,包含有___ n(n-1)/2_____条边,在一个具有n个顶点的有向完全图中,包含有__ n(n-1)______条边。
8.假定一个线性表为(12,23,74,55,63,40),若按Key % 4条件进行划分,使得同一余数的元素成为一个子表,则得到的四个子表分别为_____(12,40)()(74)(23,55,63)____。
9.向一棵B_树插入元素的过程中,若最终引起树根结点的分裂,则新树比原树的高度____增加1______。
10.在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为__ O(log2n)______,整个堆排序过程的时间复杂度为__ O(nlog2n)______。
11.在快速排序、堆排序、归并排序中,____归并_____排序是稳定的。
12.一棵深度为5的满二叉树中的结点数为_______31_______个。
13.在含n个顶点和e条边的无向图的邻接矩阵中,非零元素的个数为__2e __。
14.从一棵二叉排序树中查找一个元素时,若元素的值大于根结点的值,则继续向____右子树____查找。
15._____拓朴排序______可以判断出一个有向图中是否有环。
北方工业大学数据结构期末复习题
1.如下为二分查找的非递归算法,试将其填写完整。
Int Binsch(ElemType A[ ],int n,KeyType K){int low=0;int high=n-1;while (low<=high){int mid=_______________________________;if (K==A[mid].key) return mid; //查找成功,返回元素的下标else if (K<A[mid].key)______________________________________; //在左子表上继续查找else __________________________________; //在右子表上继续查找}return -1; //查找失败,返回-1}(low+high)/2 high=mid-1 low=mid+12.int Prime(int n){int i=1;int x=(int) sqrt(n);while (++i<=x)if (n%i==0) break;if (i>x) return 1;else return 0;}(1)指出该算法的功能;(2)该算法的时间复杂度是多少?2.(1) 判断n是否是素数(或质数)n(2)O()3.已知一个图的顶点集V和边集E分别为:V={1,2,3,4,5,6,7}; E={(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,(3,5)12,(3,6)9,(4,6)4,(4,7)20,(5,6)18,(6, 7)25}. 用克鲁斯卡尔(Kruskal)算法和prim算法得到最小生成树,试写出在最小生成树中依次得到的各条边。
3.用克鲁斯卡尔算法得到的最小生成树为:(1,2)3, (4,6)4, (1,3)5, (1,4)8, (2,5)10, (4,7)204.LinkList mynote(LinkList L){//L是不带头结点的单链表的头指针if(L&&L->next){q=L;L=L->next;p=L;S1:while(p->next) p=p->next;S2:p->next=q;q->next=NULL;}return L;}请回答下列问题:(1)说明语句S1的功能;(2)说明语句组S2的功能;(3)设链表表示的线性表为(a1,a2, …,a n),写出算法执行后的返回值所表示的线性表。
大学数据结构期末考试试题(有答案)
“数据结构”期末考试试题一、单选题(每小题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.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )。
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.当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层——调整,直到被调整到——位置为止。
《数据结构》期末考试复习题-第10章-排序
第10章排序一、选择题1.某内排序方法的稳定性是指( )。
【南京理工大学 1997 一、10(2分)】A.该排序算法不允许有相同的关键字记录 B.该排序算法允许有相同的关键字记录C.平均时间为0(n log n)的排序方法 D.以上都不对2.下面给出的四种排序法中( )排序法是不稳定性排序法。
【北京航空航天大学 1999 一、10 (2分)】A. 插入B. 冒泡C. 二路归并D. 堆积3.下列排序算法中,其中()是稳定的。
【福州大学 1998 一、3 (2分)】A. 堆排序,冒泡排序B. 快速排序,堆排序C. 直接选择排序,归并排序D. 归并排序,冒泡排序4.稳定的排序方法是()【北方交通大学 2000 二、3(2分)】A.直接插入排序和快速排序 B.折半插入排序和起泡排序C.简单选择排序和四路归并排序 D.树形选择排序和shell排序5.下列排序方法中,哪一个是稳定的排序方法?()【北方交通大学 2001 一、8(2分)】A.直接选择排序 B.二分法插入排序 C.希尔排序 D.快速排序6.若要求尽可能快地对序列进行稳定的排序,则应选(A.快速排序 B.归并排序 C.冒泡排序)。
【北京邮电大学 2001 一、5(2分)】7.如果待排序序列中两个数据元素具有相同的值,在排序前后它们的相互位置发生颠倒,则称该排序算法是不稳定的。
()就是不稳定的排序方法。
【清华大学 1998 一、3 (2分)】A.起泡排序 B.归并排序 C.Shell排序 D.直接插入排序 E.简单选择排序8.若要求排序是稳定的,且关键字为实数,则在下列排序方法中应选()排序为宜。
A.直接插入 B.直接选择 C.堆 D.快速 E.基数【中科院计算所 2000 一、5(2分)】9.若需在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是()。
A. 快速排序B. 堆排序C. 归并排序D. 直接插入排序【中国科技大学 1998 二、4(2分)】【中科院计算所 1998 二、4(2分)】10.下面的排序算法中,不稳定的是()【北京工业大学 1999 一、2 (2分)】A.起泡排序B.折半插入排序C.简单选择排序D.希尔排序E.基数排序F.堆排序。
《数据结构》期末考试试题及答案
《数据结构》期末考试试题及答案一、选择题(每题2分,共20分)1. 下列哪种数据结构是线性结构?A. 栈B. 树C. 队列D. 图答案:A2. 在计算机科学中,什么是最基本的数据结构?A. 数组B. 链表C. 栈D. 树答案:C3. 下列哪种操作的时间复杂度是O(1)?A. 在链表中插入元素B. 在数组中查找元素C. 在树中删除节点D. 在图中寻找最短路径答案:B4. 下列哪种数据结构常常用于实现栈和队列?A. 数组B. 链表C. 树D. 图答案:A5. 下列哪种数据结构是有序的?A. 栈B. 队列C. 链表D. 图答案:C二、填空题(每题2分,共20分)1. 在数据结构中,栈是一种后进先出(____)的数据结构。
答案:线性表2. 队列是一种先进先出(____)的数据结构。
答案:线性表3. 链表是一种____数据结构,由一系列节点组成。
答案:非线性4. 二叉树是一种特殊的树,它的每个节点最多有两个____。
答案:子节点5. 哈希表是通过____函数将关键字映射到表中的位置来访问数据。
答案:哈希三、判断题(每题2分,共20分)1. 树是一种线性结构。
()答案:错误2. 链表的插入和删除操作时间复杂度都是O(1)。
()答案:错误3. 图是一种线性结构。
()答案:错误4. 哈希表是一种基于顺序结构的的数据结构。
()答案:错误5. 在数据结构中,时间复杂度O(n)表示算法随着输入规模的增加而线性增长。
()答案:正确四、简答题(每题10分,共30分)1. 请简述栈和队列的特点和应用场景。
答案:栈是一种后进先出(LIFO)的数据结构,应用场景包括函数调用栈、表达式求值等。
队列是一种先进先出(FIFO)的数据结构,应用场景包括任务队列、缓冲区等。
2. 请简述链表的优缺点。
答案:链表的优点包括动态扩容、插入和删除操作时间复杂度为O(1)、可以方便地实现各种复杂数据结构。
缺点包括占用内存空间较大、不如数组支持随机访问。
北方工业大学数据结构复习材料(选择、判断、简答、计算)
A. n-i B. n-i+1
C. n-i-1 D. i
5. 若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则
利用( )存储方式最节省时间。
A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表
6. 设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( )最节省时间。
北方工业大学
《数据结构》课程期末复习材料
(2016-2017 学年度)
一、 选择(填空)题(第一、二、三章)...........................................................................1 二、 选择(填空)题(第四、五、六章)...........................................................................3 三、 选择(填空)题(第七、九、十章)...........................................................................4 四、 判断题(第一、二、三章)...........................................................................................5 五、 判断题(第四、五、六章)...........................................................................................6 六、 判断题(第七、九、十章)...........................................................................................6 七、 计算简答题(第二章)...................................................................................................7 八、 计算简答题(第三章)...................................................................................................9 九、 计算简答题(第四章).................................................................................................10 十、 计算简答题(第六章).................................................................................................11 十一、 计算简答题(第七章).............................................................................................12 十二、 计算简答题(第九章).............................................................................................15 十三、 计算简答题(第十章).............................................................................................16 答案解析......................................................................................................................................... 18
数据结构期末考试重点复习资料
期末考试重点复习资料二、考试重点内容第一章绪论1、时间复杂度和空间复杂度的计算。
要求能够计算出程序的执行次数。
2、各种概念:数据结构、数据项、数据元素第二章线性表1、单链表的各种操作,包括单链表的建立、插入、删除结点的操作语句序列2、单链表(带头结点、不带头结点、循环单链表)的逆置运算。
3、双链表的插入和删除操作语句序列。
4、单链表的直接插入排序运算。
5、静态单链表的插入和删除操作。
6、二个有序单链表的合并、一个单链表拆分为多个单链表第三章栈和队列1、栈的输入序列和输出序列、递归函数的输出结果2、循环队列的入队、出队操作以及有效元素个数的计算第四章串1、KMP算法中的next和nextval值的计算第五章数组和广义表1、二维数组任意元素地址的计算2、稀疏矩阵的转置算法3、广义表的两个操作函数:取表头和表尾第六章树和二叉树1、二叉树的性质(特别是完全二叉树的性质,例如求完全二叉树的深度等)2、二叉树的遍历(特别是中序和先序遍历,要求能够使用堆栈完成非递归遍历编程和递归算法编程,在遍历基础上的各种操作,例如求二叉树的叶子数、二叉树结点数等操作,包括有编程算法和编程填空题)3、线索二叉树(特别是中序线索化二叉树和中序线索化二叉树的中序遍历,包括编程算法和编程填空题,希望大家着重研究)4、哈夫曼编码(主要是应用题,包括哈夫曼的编码与解码,也包括哈夫曼树的特点)5、树与森林在转化成二叉树时,左右子树的结点数有何特点)6、树的层次遍历(使用队列完成、借助树的层次遍历可以判断二叉树是否为完全二叉树)、判断二叉树是否为排序二叉树等,可能有编程题或编程填空题)补充:二叉树的物理存储结构(链式和顺序存储)*第七章图1、图的两种物理存储方式(邻接矩阵与邻接表存储表示)2、图的生成树与最小生成树(生成树特点)、图的遍历3、求最小生成树的两种算法(重点是PRIM 算法,特别会写出用PRIM算法求最小生成树的过程)4、使用迪杰斯特拉算法求单源最短路径,写出求解过程5、拓扑排序6、求关键路径,要求写出事件和活动的最早和最晚开始时间,深刻理解关键路径的含义。
2022年北方工业大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)
2022年北方工业大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)一、选择题1、将线性表的数据元素进行扩充,允许带结构的线性表是()。
A.串B.树C.广义表D.栈2、将两个各有N个元素的有序表归并成一个有序表,其最少的比较次数是()。
A.NB.2N-1C.2ND.N-13、静态链表中指针表示的是()。
A.下一元素的地址B.内存储器的地址C.下一元素在数组中的位置D.左链或右链指向的元素的地址4、循环队列A[0..m-1]存放其元素值,用front和rear分别表示队头和队尾,则当前队列中的元素数是()。
A.(rear-front+m)%mB.rear-front+1C.rear-front-1D.rear-front5、有六个元素6,5,4,3,2,1顺序入栈,下列不是合法的出栈序列的是()。
A.543612B.453126C.346521D.2341566、若一棵二叉树的前序遍历序列为a,e,b,d,c,后序遍历序列为b, c,d,e,a,则根结点的孩子结点()。
A.只有e B.有e、b C.有e、c D.无法确定7、排序过程中,对尚未确定最终位置的所有元素进行一遍处理称为一趟排序。
下列排序方法中,每一趟排序结束时都至少能够确定一个元素最终位置的方法是()。
Ⅰ.简单选择排序Ⅱ.希尔排序Ⅲ.快速排序Ⅳ.堆排Ⅴ.二路归并排序A.仅Ⅰ、Ⅲ、Ⅳ B.仅Ⅰ、Ⅱ、Ⅲ C.仅Ⅱ、Ⅲ、Ⅳ D.仅Ⅲ、Ⅳ、Ⅴ8、有关二叉树下列说法正确的是()。
A.二叉树的度为2B.一棵二叉树的度可以小于2C.二叉树中至少有一个结点的度为2D.二叉树中任何一个结点的度都为29、设X是树T中的一个非根结点,B是T所对应的二叉树。
在B中,X是其双亲的右孩子,下列结论正确的是()。
A.在树T中,X是其双亲的第一个孩子B.在树T中,X一定无右兄弟C.在树T中,X一定是叶结点D.在树T中,X一定有左兄弟10、对序列{15,9,7,8,20,-1,4}用希尔排序方法排序,经一趟后序列变为{15,-1,4,8,20,9,7}则该次采用的增量是()。
数据结构期末复习题库(215道)
数据结构期末复习1、算法分析的目的是分析算法的效率以求改进,算法分析的两个主要方面是()——[单选题]A 空间复杂性和时间复杂性B 正确性和简明性C 可读性和文档性D 数据复杂性和程序复杂性正确答案:A2、两类存储结构为()——[单选题]A 线性结构和非线性结构B 逻辑结构和非逻辑结构C 顺序结构和链式结构D 逻辑结构和物理结构正确答案:C3、计算机算法指的是解决问题的有限运算序列,它必具备输入、输出和()等五个特性。
——[单选题]A 可行性、可移植性和可扩充性B 可行性、确定性和有穷性C 确定性、有穷性和稳定性D 易读性、稳定性和安全性正确答案:B4、在 C 语言中,有一种适用于不同数据类型构成的数据的结构称为()——[单选题]A 结构体B 数组C 变量D 常量正确答案:A5、在定义数组 int a[10]后,需要访问数组中第 3 个元素,正确的是()——[单选题]A a[0]B a[1]C a[2]D a[3]6、分析以下程序段,其时间复杂度为 T(n)=() for( i =0; i<n;i++)For(j=0;j<i;j++) A[i][j] = 0;——[单选题]A O(n)B O(n^2)C O(n^3)D O(1)正确答案:B7、数据元素之间存在一对多的关系,这种数据间的结构属于()——[单选题]A 集合B 线性结构C 树型结构D 图型结构正确答案:C8、有一个结构体及其变量定义如下: struct date{Int year; int month; intday;}birthday;此时要调用变量中的 year,正确的书写格式是()——[单选题]A yearB birthday.yearC date.yearD struct.year正确答案:B9、在数据结构中,从逻辑上可以把数据结构分成()——[单选题]A 动态结构和静态结构B 紧凑结构和非紧凑结构C 线性结构和非线性结构D 内部结构和外部结构正确答案:C10、分析下面算法(程序段),该算法的时间复杂度 T(n)=() for (i=0;i<n;i++)For (j=0;j<n; j++) A[i][j]=0;——[单选题]A O(n)B O(n^2)C O(n^3)D O(1)11、当定义一个结构体变量时,系统为它分配的内存空间是()——[单选题]A 结构体中一个成员所需的内存容量B 结构体中第一个成员所需的内存容量C 结构体中占内存容量最大者所需的容量D 结构体中各成员所需内存容量之和正确答案:D12、分析以下程序段,其时间复杂度为 T(n)=() x=0;For(i=1;i<n;i++);for(j=1;j<n;j++);For(k=1;k<n;k++); x++;——[单选题]A O(n)B O(n^2)C O(n^3)D O(1)正确答案:A13、有结构体定义及结构体类型数组如下: struct worklist{Int no;Char name[20]; char sex;}person[5];需要给结构体数组中第 2 个变量的 no 成员赋值为 5,正确的写法是()——[单选题]A no=5;B person.no=5;C person[2].no=5;D person[1].no=5;正确答案:D14、分析以下程序段,其时间复杂度为 T(n)=() i=1;While(i<=n) i=3*i;——[单选题]A O(n)B O(n^2)C O(n^3)D O(1)正确答案:D15、线性表是具有 n 个()的有限序列。
《数据结构》期末复习题及参考答案
《数据结构》复习资料一单选题 (共48题,总分值0分 )1. 设用链表作为栈的存储结构,则退栈操作(0 分)A. 必须判别栈是否为满B. 必须判别栈是否为空C. 判别栈元素的类型D. 对栈不作任何判别2. 下面关于m阶B树说法正确的是()。
①每个结点至少有两棵非空子树;②树中每个结点至多有m-1个关键字;③所有叶子在同一层上;④当插入一个数据项引起B树结点分裂后,树长高一层。
(0 分)A. ①②③B. ②③C. ②③④D. ③3. 下列关于文件的说法,错误的是()。
(0 分)A. 选择文件的组织方式时应考虑外存的性质和容量B. 不定长文件指的是总长度可变的文件C. 对文件的操作主要是维护和检索D. 文件的存储结构指的是文件在外存上的组织方式4. 设无向图的顶点个数为n,则该图最多有()条边。
(0 分)A. n-1B. n(n-1)/2C. n(n+1)/2D. n25. 设广义表L=((a,()),b,(c,d,e)),则Head(Tail(Tail(L)))的值为()。
(0 分)A. bB. cC. (c)D. (c,d,e)6. 设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
(0 分)A. 688B. 678C. 692D. 6967. 设某无向图中有n个顶点e条边,则该无向图中所有顶点的入度之和为(0 分)A. nB. eC. 2nD. 2e8. 广义表(a,(b,(),c))的深度为()。
(0 分)A. 1B. 2C. 3D. 49. 设有向图G中有五个顶点,各顶点的度分别为3、2、2、1、2,则G中弧数为()。
(0 分)A. 4条B. 5条C. 6条D. 无法确定10. 若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为(0 分)A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,311. 具有n个顶点的有向强连通图最少有()条弧。
数据结构期末复习题及答案3
第1章绪论《》1、填空题1.常见的数据结构有_线性__结构,__树形___结构,__图形__结构等三种。
2.常见的存储结构有__顺序存储_______结构,__链式存储____结构等两种。
3.数据的基本单位是_数据元素___,它在计算机中是作为一个整体来处理的。
4.数据结构中的结构是指数据间的逻辑关系,常见的结构可分为两大类,__线性结构____和__非线性结构___。
2、应用题1、给出以下算法的时间复杂度.void fun(int n){int i=1,k=100;while(i<n){k=k+1;i=i+2;}}时间复杂度为____O(n)_____。
2、给出以下算法的时间复杂度.void fun2(int n){int i=1,k=100;while(i<n){i=i*10;k=k+1;}}时间复杂度为____O(log n)___________。
第2章线性表1、填空题1. 线性表按照存储结构不同主要有两种实现方式,一种是__顺序_表,另一种是___链___表。
2.顺序表采用__随机___访问机制对数据元素进行访问。
3.若在单链表结点p的后面插入一个新的结点s,则其操作序列为:①____s->next=p->next_____________;②____p->next=s___________________;4.在单向链表中,若要删除某个结点p,一般要找到__p的前趋__结点,才能实现该操作。
2、选择题1.将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是A。
(A)n (B)2n-1 (C)2n (D)n-12.在单链表中,如果在结点p之后插入一个新结点s,其操作为 A 。
(A)s->next=p->next; p->next=s;(B)p->next=s; s->next=p->next;(C)s->next=p; p->next=s->next;(D)p->next=s; s->next=p;3.若长度为n的线性表采用顺序存储结构,在其第i个位置删除一个元素的算法的平均时间复杂度为( C )。
2022年北京工业大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)
2022年北京工业大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)一、选择题1、用有向无环图描述表达式(A+B)*((A+B)//A),至少需要顶点的数目为()。
A.5B.6C.8D.92、设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储, a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为()。
A.13B.33C.18D.403、连续存储设计时,存储单元的地址()。
A.一定连续B.一定不连续C.不一定连续D.部分连续,部分不连续4、在下列表述中,正确的是()A.含有一个或多个空格字符的串称为空格串B.对n(n>0)个顶点的网,求出权最小的n-1条边便可构成其最小生成树C.选择排序算法是不稳定的D.平衡二叉树的左右子树的结点数之差的绝对值不超过l5、已知串S='aaab',其next数组值为()。
A.0123B.1123C.1231D.12116、循环队列放在一维数组A中,end1指向队头元素,end2指向队尾元素的后一个位置。
假设队列两端均可进行入队和出队操作,队列中最多能容纳M-1个元素。
初始时为空,下列判断队空和队满的条件中,正确的是()。
A.队空:end1==end2;队满:end1==(end2+1)mod MB.队空:end1==end2;队满:end2==(end1+1)mod (M-1)C.队空:end2==(end1+1)mod M;队满:end1==(end2+1) mod MD.队空:end1==(end2+1)mod M;队满:end2==(end1+1) mod (M-1)7、已知字符串S为“abaabaabacacaabaabcc”,模式串t为“abaabc”,采用KMP算法进行匹配,第一次出现“失配”(s!=t)时,i=j=5,则下次开始匹配时,i和j的值分别()。
A.i=1,j=0 B.i=5,j=0 C.i=5,j=2 D.i=6,j=28、已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历结果为()。
数据结构期末复习指导
数据结构期末复习指导考试题型及分值:1. 单项选择题(每题3分,共15分)2. 填空题(每空3分,共45分)3. 运算题(每小题8分,共16分)4. 算法应用题(每小题8分,共16分)5. 编写算法(8分)一、单选题1. 若需要利用形参直接访问实参,则应把形参变量说明为()参数。
A 指针B 引用C 值D 函数2.假定利用数组a[N]顺序存储一个栈,用top表示栈顶指针,top==-1表示栈空,并已知栈未空,当退栈并返回栈顶元素时所执行的操作为()。
A return a[--top];B return a[top--];C return a[++top];D return a[top++];3. 假定一个链队的队首和队尾指针分别为f和r,则判断队空的条件为()。
A f==rB f!=NULLC r!=NULLD f==NULL4. 在一棵具有n个结点的二叉树中,所有结点的空指针数等于()。
A nB n-1C n+1D 2n5. 从堆中删除一个元素的时间复杂度为()。
A O( 1 )B O( n )C O( log2n )D O( n log2n)6. 利用n个值作为叶子结点的权生成的哈夫曼树中共包含有()个结点。
A nB n+1C 2nD 2n-17. 在一个带权连通图G中,劝值最小的边一定包含在G的()中。
A 最小生成树B 生成树C 广度优先生成树D 深度优先生成树8. 一个有n个顶点和n条边的无向图一定是()A 连通的B 不连通的C 无回路D 有回路9. 在一个长度为n的顺序存储的线性表中,删除第i个元素(1≤i≤n)时,需要从前向后依次前移()个元素。
A. n-iB. n-i+1C. n-i-1D. i10. 设一个广义表中结点的个数为n,则求广义表深度算法的时间复杂度为()。
A. O(1)B. O(n)C. O(n2)D. O(log2n)11. 假定一个顺序队列的队首和队尾指针分别为f和r,则判断队空的条件为()。
北京工业大学 计算机系统结构 复习
计算机系统结构概念点,不含计算方法,仅有部分提示,整理内容仅供参考计算机系统结构:指机器语言程序的设计者或是编译程序设计者所看到的计算机系统的概念性结构与功能特性。
透明性:一种本来存在,有差异的事物和属性,从某种角度上看又好像不存在的现象,被称为是“透明性”(例如,高级程序员看不到各种不同类型机器的差异性,就是一个明显的例证。
)计算机系统结构:数据表示;寄存器定义;指令系统;中断系统;存储系统;输入输出结构;机器工作状态;信息保护计算机组成:数据通路的宽度;专用部件的设置;各功能部件;控制机构的组成方式;缓冲技术;可靠性技术的采用和方式的选择计算机实现:逻辑设计的物理实现FLYNN分类法:单指令流单数据流( SISD ),传统顺序处理计算机单指令流、多数据流(SIMD )结构,阵列处理机、并行处理机多指令流、单数据流( MISD )结构,如RISC机、向量机多指令流、多数据流( MIMD )结构,多处理机系统计算机系统的设计原则:1.加速那些使用频率高的部件——提高整个计算机性能; 2.Amdahl定律; 3.程序访问局部性原理Amdahl定律:系统中某一部件由于采用某种改进的执行方式后,整个系统的性能提高了,其衡量指标为加速比。
Amdahl定律可表示为:加速比Sp = T e / T0改进后时间T0= Te(1 –可改进部分占比fe + f e性能提高倍数 r e ⁄)整理得Sp=1(1−fe)+fe/reCPU性能指标:T CPU=I N∗CPI∗T c=指令总数*执行每条指令所需平均周期数*时钟周期CPI=∑CPI i∗I iI N MIPS=I NT e∗106=时钟频率R cCPI∗106MFLOPS=程序中的浮点操作次数I FN执行时间T e∗106计算机系统的层次结构(会排序,注意23级)性能评价结果数据的处理方法:算术性能平均法;几何..;调和..;软件兼容性要求:继承软件资产,保证软件向后兼容和向上兼容数据类型:基本数据类型(二进制数位及位串、整数及自然数、实数(浮点数)、逻辑数、十进制数、字符等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/ < < > > < > <
( < < < < < 错 <
) > > > > = >
# > > > > 错 > =
a/(b-c)+d*e# abc-/de*+
输入 a / ( b c ) + d * e # 动作 输出a />#,入栈 入栈 输出b - > ( ,入栈 输出c -出栈输出,直至( )==( ,出栈不输出 +</, /出栈输出 +>#,入栈 输出d *>+,入栈 输出e 连续出栈输出 栈内容 # #/ #/( ab 后缀表达式 对应算法步骤 a 1 4.2 2 1 4.2 1 3.2 3.2 4.1 4.2 1 4.2 1 5
Visit( root ) //中序
DepthOrder(root->rightchild());//访问右子树 }
Visit( root ) //后序
10.
}
生成二叉搜索树 45,53,12,37,3,100,61,24,90,78 12 3 24 37
45 53 100 61 78 90
二叉搜索树的删除
20 35
40
85
88
有左子树(改进)
若p(50)有左子树,则在左子树里找中序 周游的最后一个结点s(40),删除s,用s 的左子树代替s,用s代替被删p
这种方法可以降低二叉树的高度。
50 30 20 40 80 90 20 30 35 40 80 90
35
32
85
88
32
85
88
已知序列72,73,71,23,94,16,05,68 建堆
72
最小堆的插入
插入过程:插入点追加到最后,自下而上 依次比较父与子,直到满足堆的定义
12 14 12 12 15 13
15
14
15
19
20 17 18 19
13 17 18 19
14 17 18
24 22 26 13
24 22 26 20
24 22 26 20
插入13
2013
1413
最小堆的删除
数据的抽象
算法的抽象
类模板代表一类类,不代表具体的类 类模板的定义格式:
ADT定义类模板
template<class Type> //类型参数Type,使用时用具体数据类型代替 class className{ private: Type dataList; … public: methodName( ); … };
必须能够跟踪执行过程;求ASL。 堆概念、建堆、筛选、插、删的相关算法(过程) Huffman树构造及Huffman编码
深度优先周游二叉树(递归实现)
1. 2.
3. 4.
5.
6. 7. 8. 9.
template<class T> void BinaryTree<T>::PreOrder (BinaryTreeNode<T>* root) { if(root!=NULL){ Visit(root->value( )); //前序 DepthOrder(root->leftchild()); //访问左子树
具有n个结点的满二叉树,其叶子结点
的个数为____________。(如果一棵二叉树的
任何结点,或者是树叶,或者恰有两棵非空子树,则此二 叉树称作满二叉树 ,性质3.任何一棵二叉树,n0 = n2+1)
某棵二叉树的前序序列为ABDEFC,
中序序列为DBFEAC,则该二叉树对 应的后序序列的结果为___________。
常见上限g(n)的种类(用于比较各算法优劣)
n2
n
log
n
题型举例
算法指的是( A. 计算机程序 C. 排序算法 列 )。 B. 解决问题的计算方法 D. 解决问题的有限运算序
将长度为 n 的单链表接在长度为 m 的单链表之 后的算法时间复杂度为 ( ) 。 A. O( n ) B. O( 1 )
方法
抽象数据类型ADT
算法4个特性:通用性、有效性、确定性、有穷性 算法分析:T(n)、S(n)算法分析的相关概念;最差、最 佳与平均情况的意义
ADT的定义
三元组表示 ADT=(D,R,P) ADT 抽象数据类型名 { 数据对象D:<数据对象的定义> 数据关系R :<数据关系的定义> 基本操作P:<基本操作的定义> } ADT 抽象数据类型名 用C++类模板的声明表示ADT
链表优点
适用
按位置频繁进行读取、数据域占用空间小于指针域:用顺序 存储结构
题型举例
有序的顺序表与无序的顺序表相比,其操作优 势是( )。 A. 删除快
C. 生成快
B. 插入快
D. 查找快。
若对线性表进行的主要操作是按下标存取,且
很少插入和删除,则应该采用的存储结构是 _____ ;若需要频繁地对线性表进行插入和删 除时,则应该采用的存储结构是 。
^| A |^ B ^|B | ^| C | | E |^ ^|D|^ A
O(1)<O(logn)<O(n)<O(nlogn)<O(n2) 常数阶 对数 线性 对数乘积 平方 <O(n3)<….<O(2n)<O(n!) 立方 指数 阶乘 T 常数:g(n) = 1 2n 对数:g(n) = logn 线性增长: g(n) = n 二阶增长: g(n) = n2 g(n) = nlog(n), n <= nlog(n)增长率 <= n2 指数增长: g(n) = an
2.1.2 线性表的存储结构
逻辑结构存储空间 的映射
数据存储单元 建立映射 关系存储单元之间关系 建立映射
1.
线性表2类存储结构 顺序存储(定长的一维数组结构、向量型顺序存储结构
)
为整个元素动态分配连续空间 特点:逻辑相邻物理也相邻 按需分配(插入:分配一个结点/删除:回收一结点) 特点:逻辑相邻物理不一定相邻
先根次序周游森林 后根次序周游森林
= 前序周游二叉树
= 中序周游二叉树
树(森林)与二叉树的等价转换 树与森林的链式存储结构
动态“左子/右兄”二叉链表表示法
森林与二叉树的等价转换
森林由3部分组成: 森林中第一棵树的根结点 森林中第一棵树的子树森林 森林中其它树构成的森林
动态“左子/右兄”二叉链表表示法
顺序表优点
存储紧凑(逻辑结构由存储相对位置体现,没使用指针,不 用花费附加开销 ) 随机访问(给定下标,常量时间可定位) 不限定长度(无需事先了解线性表的长度,允许线性表的长 度有很大变化 ) 不必移动,仅需改指针即可插删(能够适应经常插入删除内 部元素的情况 ) 不能确定长度上限、频繁插删:用链式存储结构
5.6 Huffman树及其应用
a: 0001
建树
0 0
100 0 42
1
b:10 c:1110
19
11
23
f 6
0 29
b 2
58 1 29 14
e 5
d:1111 f:01
1
g:0000
h:001
8
1
15 0 7
c 3
d 4
h 8
3
g 7
5
a下标:1
8
与算法有关的典型例题
已知一棵二叉树的前序和中序(后 序和中序)遍历序列,构造对应的 二叉树 通过二叉树,获得对应的树与森林 的相关信息 深度周游与广度周游二叉树
C++引入模板概念,是想突出数据的逻辑结构而忽略 其具体的数据类型
声明、定义和使用 C++类模板(2)
类模板:描述了一组相关的类,它们只能通过类型来区分 1、类模板声明:仅提供了类的名称和类的模板参数 template <class Elem> //类模板 Array 可接受任何类型作为参数 class Array { Elem* data; int size; //声明类模板Array的类数据 public: Array( int sz ) ; //函数成员 int GetSize( ) ; }; 2、函数成员定义 template <class Elem> Array<Elem>::Array( int sz ) { size = sz; data = new Elem[size];} template <class Elem> int Array<Elem>::GetSize( ){ return size; } 3、类模板的用法 Array<int> int_array(100); //Array接收int作参数, //int_array为长100的int型数组对象
在二叉搜索树里删除结点时,不是把以这个
结点为根的子树都删除掉,只是删除一个结 点,并且还要保持二叉搜索树的性质。
删除过程分为两种情况:
没有左子树 有左子树
没有左子树
若结点p没有左子树,则用右子树的根代替被删除 的结点p。
50
30
20 35 32 40
80
90 85 88 32
50