2011年数据结构本科试题及答案
数据结构导论2011年01真题和答案

全国2011年1月自学考试数据结构导论试题和答案课程代码:02142一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.在顺序表中查找第i个元素,时间效率最高的算法的时间复杂度为( )A.O(1)B.O(n)C.O(log2n)D.O(n)2.树形结构中,度为0的结点称为( )A.树根B.叶子C.路径D.二叉树3.已知有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7},E={<V1,V2>,<V1,V3>,<V1,V4>,<V2,V5>,<V3,V5>,<V3,V6>,<V4,V6>,<V5,V7>,,<V6,V7>},则图G的拓扑序列是( )A.V1,V3,V4,V6,V2,V5,V7B.V1,V3,V2,V6,V4,V5,V7C.V1,V3,V4,V5,V2,V6,V7D.V1,V2,V5,V3,V4,V6,V74.有关图中路径的定义,表述正确的是( )A.路径是顶点和相邻顶点偶对构成的边所形成的序列B.路径是不同顶点所形成的序列C.路径是不同边所形成的序列D.路径是不同顶点和不同边所形成的集合5.串的长度是指( )A.串中所含不同字母的个数B.串中所含字符的个数C.串中所含不同字符的个数D.串中所含非空格字符的个数6.组成数据的基本单位是( )A.数据项B.数据类型C.数据元素D.数据变量7.程序段i=n;x=0;do{x=x+5*i;i--;}while (i>0);的时间复杂度为( )A.O(1)B.O(n)C.O(n2)D.O(n3)8.与串的逻辑结构不同的...数据结构是( )A.线性表B.栈C.队列D.树9.二叉树的第i(i≥1)层上所拥有的结点个数最多为( )A.2iB.2iC.2i-1D.2i-110.设单链表中指针p指向结点A,若要删除A的直接后继,则所需修改指针的操作为( )全国2011年1月自学考试数据结构导论试题和答案 1A.p->next=p->next->nextB.p=p->nextC.p=p->next->nextD.p->next=p11.下列排序算法中,某一趟结束后未必能选出一个元素放在其最终位置上的是( )A.堆排序B.冒泡排序C.直接插入排序D.快速排序12.设字符串S1=″ABCDEFG″,S2=″PQRST″,则运算S=CONCAT(SUBSTR(S1,2,LENGTH(S2)),SUBSTR(S1,LENGTH(S2),2))后S的结果为( )A.″BCQR″B.″BCDEF″C.″BCDEFG″D.″BCDEFEF″13.在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并且A的左孩子的平衡因子为-1,右孩子的平衡因子为0,则使其平衡的调整方法为( )A.LL型B.LR型C.RL型D.RR型14.如果结点A有3个兄弟结点,而且B为A的双亲,则B的度为( )A.1B.3C.4D.515.数据表A中每个元素距其最终位置较近,则最省时间的排序算法是( )A.堆排序B.插入排序C.直接选择排序D.快速排序二、填空题(本大题共13小题,每小题2分,共26分)请在每小题的空格中填上正确答案。
2011年数据结构本科试题及答案

武汉大学计算机学院2011年-2012学年第一学期“数据结构”考试试题(A)要求:所有的题目的解答均写在答题纸上,需写清楚题目的序号。
每张答题纸都要写上姓名和学号。
一、单项选择题(共20小题,每小题2分,共40分)1. 下列各选项中属于逻辑结构的是。
A.哈希表B.有序表C.单链表D.顺序表2. 对于数据结构,以下叙述中不正确的是。
A.数据的逻辑结构与数据元素本身的形式和内容无关B.数据的逻辑结构是数据的各数据项之间的逻辑关系C.数据元素是数据的基本单位D.数据项是数据的最小单位3. 某算法的时间复杂度为O(n2),表明该算法的。
A.问题规模是n2B.执行时间等于n2C.执行时间与n2成正比D.问题规模与n2成正比4. 通常在单链表中增加一个头节点,其目的是为了。
A.使单链表至少有一个节点B.标识表节点中首节点的位置C.方便单链表运算的实现D.说明单链表是线性表的链式存储5. 删除某个双链表中的一个节点(非首、尾节点),需要修改个指针域。
A.1B.2C.3D.46. 栈和队列是两种不同的数据结构,但它们中的元素具有相同的。
A.抽象数据类型B.逻辑结构C.存储结构D.运算7. 元素a、b、c、d、e依次进入初始为空的栈中,若元素进栈后可停留、可出栈,直到所有的元素都出栈,则所有可能的出栈序列中,以元素d开头的序列个数是。
A.3B.4C.5D.68. 设环形队列中数组的下标是0~N-1,其头尾指针分别为f和r(f指向队列中队头元素的前一个位置,r指向队尾元素的位置),则其元素个数为。
A.r-fB.r-f-1C.(r-f)%N+1D.(r-f+N)%N9. 已知循环队列存储在一维数组A[0..n-1]中,且队列非空时front和rear分别指向队头元素和队尾元素。
若初始时队列空,且要求第一个进入队列的元素存储在A[0]处,则初始时front和rear的值分别是。
A.0,0B.0,n-1C.n-1,0D.n-1,n-110. 对于n阶(n≥2)对称矩阵,采用压缩方法以行序优先存放到内存中,则需要个存储单元。
2011年江苏省《数据结构》期末考试试题及答案知识大全

14、一棵左子树为空的二叉树在前序线索化后,其空指针域个数为
A.0 B.1 C.2 D.不确定
15、如果对线性表的操作只有两种,即删除第一个元素,在最后一个元素的后面插入新元素,则最好使用 B 。
A.只有表头指针没有表尾指针的循环单链表
C.每个数据元素都一样
D.数据元素所包含的数据项的个数要相等
26、数据结构在计算机内存中的表示是指 A 。
A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系
27、非空的循环单链表head的尾结点(由p所指向)满足 C 。
A.p->next == NULL B.p == NULL
43、非空的循环单链表head的尾结点(由p所指向)满足 C 。
A.p->next == NULL B.p == NULL
C.p->next ==head D.p == head
44、若某线性表中最常用的操作是取第i个元素和找第i个元素的前驱,则采用( )存储方法最节省时间
20、算法分析的目的是 C ,算法分析的两个主要方面是 A 。
(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系
C.分析算法的效率以求改进 C.分析算法的易读性和文档性
(2)A.空间复杂度和时间复杂度 B.正确性和简明性
C.可读性和文档性 D.数据复杂性和程序复杂性
A 顺序表 B单链表 C 双链表 D单循环链表
45、需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。
A.单链表 B.静态链表 C.线性链表 D.顺序存储结构
46、深度为k的完全二叉树所含叶结点的个数最多为( B)。
2011年山东省数据结构试题及答案必过技巧

7、广义表A=(x,((y),((a)),A))的深度是
A.2 B.3 C.4 D.∞
8、从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( )。
A.O(1) B.O(n)
C.O(1Ogzn) D.O(n2)
25、通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 B 。
A.数据元素具有同一特点
B.不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致
C.每个数据元素都一样
D.数据元素所包含的数据项的个数要相等
26、链表不具备的特点是 A 。
A.可随机访问任一结点 B.插入删除不需要移动元素
A 6 B 7 C 8 D 9
33、若进栈序列为1,2,3,4,则不可能得到的出栈序列是( C )。
A)3,2,1,4 B)3,2,4,1
C)4,2,3,1 D)2,3,4,1
34、已知关键字序列为{66,82,25,51,98,108},利用快速排序方法,以第一个元素为基准得到的一趟排序结果为
48、在数据结构中,从逻辑上可以把数据结构分为 C 。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构
C.线性结构和非线性结构 D.内部结构和外部结构
49、6个顶点的强连通图中,含有的边数至少是
A.4 B.5 C.6 D.7
A B C D
23、在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。
A. HL=pLeabharlann p一>next=HL B. p一>next=HL;HL=p3
C. p一>next=Hl;p=HL;
A.n—l条有向边 B.n条有向边
2011年10月数据结构试题及答案

全国2011年10月高等教育自学考试-----数据结构试题一、单项选择题(本大题共15小题,每小题2分,共30分)1、在数据的逻辑结构中,树结构和图结构都是()A.非线性结构B.线性结构C.动态结构D.静态结构2.在一个长度为n的顺序表中插入一个元素的算法的时间复杂度为()A.O(1)B.O(log n)C.O(n)D.O(n2)3.指针p1和p2分别指向两个无头结点的非空单循环链表中的尾结点,要将两个链表链接成一个新的单循环链表,应执行的操作为()A.p1->next=p2->next;p2->next=p1->next;B. p2->next=p1->next;p1->next=p2->next;C. p=p2->next; p1->next=p;p2->next=p1->next;D. p=p1->next; p1->next= p2->next;p2->next=p;4.设栈的初始状态为空,入栈序列为1,2,3,4,5,6,若出栈序列为2,4,3,6,5,1,则操作过程中栈中元素个数最多时为()A.2个B.3个C.4个D.6个5.队列的特点是()A.允许在表的任何位置进行插入和删除B.只允许在表的一端进行插入和删除C.允许在表的两端进行插入和删除D.只允许在表的一端进行插入,在另一端进行删除6.一个链串的结点类型定义为﹟define NodeSize 6typedef struct node{char data[NodeSize];struct node*next;}LinkStrNode;如果每个字符占1个字节,指针占2个字节,该链串的存储密度为()A.1/3B.1/2C.2/3D.3/47.广义表A=(a,B,(a,B,(a,B,……)))的长度为()A.1B.2C.3D.无限值8.已知10×12的二维数组A,按“行优先顺序”存储,每个元素占1个存储单元,已知A[1][1]的存储地址为420,则A[5][5]的存储地址为()A.470B.471C.472D.4739.在一棵二叉树中,度为2的结点数为15,度为1的结点数为3,则叶子结点数为()A.12B.16C.18D.2010.在带权图的最短路径问题中,路径长度是指()A.路径上的顶点数B.路径上的边数C.路径上的顶点数与边数之和D.路径上各边的权值之和11.具有n个顶点、e条边的无向图的邻接矩阵中,零元素的个数为()A.eB.2eC.n2-2eD.n2-112.要以O(n log n)时间复杂度进行稳定的排序,可用的排序方法是()A.归并排序B.快速排序C.堆排序D.冒泡排序13.若希望在1000个无序元素中尽快求得前10个最大元素,应借用()A.堆排序B.快速排序1 / 6C.冒泡排序D.归并排序14.对有序表进行二分查找成功时,元素比较的次数()A.仅与表中元素的值有关B.仅与表的长度和被查元素的位置有关C.仅与被查元素的值有关D.仅与表中元素按升序或降序排列有关15.散列文件是一种()A.顺序存取的文件B.随机存取的文件C.索引存取的文件D.索引顺序存取的文件二、填空题(本大题共10小题,每小题2分,共20分)16.若一个算法中的语句频度之和为T(n)=3n3-200nlog2n+50n,则该算法的渐近时间复杂度为__________.17.在单链表中,除了第1个元素结点外,任一结点的存储位置均由_____________指示。
2011河北省数据结构试题及答案

1、以下属于顺序存储结构优点的是( A )。
A) 存储密度大B) 插入运算方便C)删除运算方便D)可方便地用于各种逻辑结构的存储表示2、若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点的个数是( B )。
A)9 B)11 C)15 D)不能确定3、数据结构研究的内容是( D )。
A)数据的逻辑结构 B)数据的存储结构C)建立在相应逻辑结构和存储结构上的算法 D)包括以上三个方面4、在数据结构中,从逻辑上可以把数据结构分为( C )。
A)动态结构和静态结构 B)紧凑结构和非紧凑结构C)线性结构和非线性结构 D)内部结构和外部结构5、队列的操作的原则是( A )。
A)先进先出 B) 后进先出C) 只能进行插入 D) 只能进行删除6、如果结点A有3个兄弟,而且B为A的双亲,则B的度为( B )。
A)3 B)4 C)5 D)17、设单链表中指针p指着结点A,若要删除A之后的结点(若存在),则需要修改指针的操作为( A )。
A)p->next=p->next->next B)p=p->nextC)p=p->nexe->next D)p->next=p8、队列的操作的原则是( A )。
A)先进先出 B) 后进先出C) 只能进行插入 D) 只能进行删除9、下面程序段的时间复杂度是( A )。
s =0;for( i =0; i<n; i++)for(j=0;j<n;j++)s +=B[i][j];sum = s ;A) O(n2) B) O(n)C) O(m*n) D)O(1)10、与无向图相关的术语有( C )。
A)强连通图 B)入度C)路径 D)弧11、有一个有序表{1,4,6,10,18,35,42,53,67,71,78,84,92,99}。
当用二分查找法查找键值为84的结点时,经( B )比较后查找成功。
A) 4 B)3 C)2 D)1212、数据结构研究的内容是( D )。
2011年浙江省数据结构C语言版试题及答案

18、下列关于哈夫曼树的叙述中,错误的是
A.用n个结点构造的哈夫曼树是唯一的
B.哈夫曼树中只有度为0或度为2的结点
C.树中两个权值最小的结点可能是兄弟结点
D.同一结点集构造的二叉树中,哈夫曼树的WPL最小
19、n个顶点的强连通图中至少含有( )。
A.n—l条有向边 B.n条有向边
C.对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。
5、不带头结点的单链表head为空的判定条件是 A 。
A.head == NULL B head->next ==NULL
C.head->next ==head D head!=NULL
D.顺序访问相邻结点更灵活
36、在决定选取何种存储结构时,一般不考虑 A 。
A.各结点的值如何 B.结点个数的多少
C.对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。
37、数据结构中,从逻辑上可以把数据结构分成(?)。
?A.动态结构和静态结构?B.紧凑结构和非紧凑结构?C.线性结构和非线性结构?D.内部结构和外部结构
1、若进栈序列为1,2,3,4,则不可能得到的出栈序列是( C )。
A)3,2,1,4 B)3,2,4,1
C)4,2,3,1 D)2,3,4,1
2、在以下的叙述中,正确的是 B 。
A.线性表的顺序存储结构优于链表存储结构
B.二维数组是其数据元素为线性表的线性表
C.栈的操作方式是先进先出
33、算法分析的目的是 C ,算法分析的两个主要方面是 A 。
(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系
C.分析算法的效率以求改进 C.分析算法的易读性和文档性
2011年数据结构期末试题(附完整答案)

15.串是一种特殊的线性表,其特殊性体现在( ) A.可以顺序存储 B.数据元素是一个字符 C.可以链接存储 D.数据元素可以是多个字符 16.树的基本遍历策略分为先根遍历和后根遍历;二叉树的基本遍历策 略可分为先序遍历、中序遍历和后序遍历。结论( )是正确的。 A.树的先根遍历序列与其对应的二叉树的先序遍历序列相同 B.树的后根遍历序列与其对应的二叉树的先序遍历序列相同 C.树的先根遍历序列与其对应的二叉树的中序遍历序列相同 D.以上都不对 17.由五个分别带权值为9,2,3,5,14的叶子结点构成的一棵哈夫曼 树,该树的带权路径长度为( )。 A. 60 B. 66 C. 67 D. 50 18.一棵二叉树有67个结点,这些结点的度要么是0,要么是2。这棵二 叉树中度为2的结点有( )个 A. 33 B. 34 C. 32 D. 30 19.有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当二分查找 值82为的结点时,( )次比较后查找成功。 A. 1 B. 2 C. 4 D. 8 20.若有文件的关键字序列为:[265] [301] [751] [129] [937] [863] [742] [694] [076] [438],以下为二路归并排序过程。第二趟为: A.[265 301] [129 751] [863 937] [694 742] [076 438] B.[076 129 265 301 438 694 742 751 863 937] C.[129 265 301 694 742 751 863 937] [076 438] D.[129 265 301 751] [694 742 863 937] [076 438]
⑴ ⑷
⑵ ⑸
⑶
3.请在标号处填写合适的语句。完成下列程序。(每空1分,共5分) int Binary_Search(S_TBL tbl,KEY kx) { /* 在表tbl中查找关键码为kx的数据元素,若找到返回该元素在表中的位 置,否则,返回0 */ int mid,flag=0; low=1;high=length; while( ⑴ &!flag ) { /* 非空,进行比较测试 */ mid= ⑵ ; if(kx<tbl.elem[mid].key) ⑶ ; else if(kx>tbl.elem[mid].key) ⑷ ; else { flag= ⑸ ;break;} } return flag; } ⑴ ⑵ ⑶ ⑷ ⑸
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
武汉大学计算机学院2011年-2012学年第一学期“数据结构”考试试题(A)要求:所有的题目的解答均写在答题纸上,需写清楚题目的序号。
每张答题纸都要写上姓名和学号。
一、单项选择题(共20小题,每小题2分,共40分)1. 下列各选项中属于逻辑结构的是。
A.哈希表B.有序表C.单链表D.顺序表2. 对于数据结构,以下叙述中不正确的是。
A.数据的逻辑结构与数据元素本身的形式和内容无关B.数据的逻辑结构是数据的各数据项之间的逻辑关系C.数据元素是数据的基本单位D.数据项是数据的最小单位3. 某算法的时间复杂度为O(n2),表明该算法的。
A.问题规模是n2B.执行时间等于n2C.执行时间与n2成正比D.问题规模与n2成正比4. 通常在单链表中增加一个头节点,其目的是为了。
A.使单链表至少有一个节点B.标识表节点中首节点的位置C.方便单链表运算的实现D.说明单链表是线性表的链式存储5. 删除某个双链表中的一个节点(非首、尾节点),需要修改个指针域。
A.1B.2C.3D.46. 栈和队列是两种不同的数据结构,但它们中的元素具有相同的。
A.抽象数据类型B.逻辑结构C.存储结构D.运算7. 元素a、b、c、d、e依次进入初始为空的栈中,若元素进栈后可停留、可出栈,直到所有的元素都出栈,则所有可能的出栈序列中,以元素d开头的序列个数是。
A.3B.4C.5D.68. 设环形队列中数组的下标是0~N-1,其头尾指针分别为f和r(f指向队列中队头元素的前一个位置,r指向队尾元素的位置),则其元素个数为。
A.r-fB.r-f-1C.(r-f)%N+1D.(r-f+N)%N9. 已知循环队列存储在一维数组A[0..n-1]中,且队列非空时front和rear分别指向队头元素和队尾元素。
若初始时队列空,且要求第一个进入队列的元素存储在A[0]处,则初始时front和rear的值分别是。
A.0,0B.0,n-1C.n-1,0D.n-1,n-110. 对于n阶(n≥2)对称矩阵,采用压缩方法以行序优先存放到内存中,则需要个存储单元。
A.n(n+1)/2B.n(n-1)/2C.n2D.n2/211. 一棵度为4的树T中,若有20个度为4的节点,10个度为3的节点,1个度为2的节点,10个度为1的节点,则树T的叶子节点个数是。
A.41B.82C.113D.12212. 一个具有n(n≥2)个顶点的无向图,至少有①个连通分量,最多有②个连通分量。
A.0B.1C.n-1D.n13. 含有n(n≥2)个顶点的无向图的邻接矩阵必然是一个。
A.对称矩阵B.零矩阵C.上三角矩阵D.对角矩阵14. 对如图1所示的无向图,从顶点A出发得到的广度优先序列可能是。
A.ABECDB.ACBDEC.ACDBED.ABDEC图1 一个无向图15. 设有100个元素的有序顺序表,用折半查找时,成功时最大的比较次数是。
A.25B.50C.10D.716. 已知一个长度为16的顺序表,其元素按关键字有序排序,若采用折半查找法查找一个不存在的元素,则平均关键字比较的次数是。
A.70/17B.70/16C.60/17D.60/1617. 以下关于m阶B-树的叙述中正确的是。
A.每个节点至少有两棵非空子树B.树中每个节点至多有⎡m/2⎤-1个关键字C.所有叶子节点均在同一层上D.当插入一个关键字引起B-树节点分裂时,树增高一层18. 为提高散列(哈希)表的查找效率,可以采取的正确措施是。
Ⅰ.增大装填(载)因子Ⅱ.设计冲突(碰撞)少的散列函数Ⅲ.处理冲突(碰撞)时避免产生聚集(堆积)现象A.仅ⅠB.仅ⅡC.仅Ⅰ、ⅡD.仅Ⅱ、Ⅲ19. 数据序列{8,9,10,4,5,6,20,1,2}只能是的两趟排序后的结果。
A.简单选择排序B.冒泡排序C.直接插入排序D.堆排序20. 用某种排序方法对顺序表{24,88,21,48,15,27,69,35,20}进行排序,各趟元素序列的变化情况如下:(1){24,88,21,48,15,27,69,35,20}(2){20,15,21,24,48,27,69,35,88}(3){15,20,21,24,35,27,48,69,88}(4){15,20,21,24,27,35,48,69,88}则所采用的排序方法是。
A.快速排序B.简单选择排序C.直接插入排序D.归并排序二、问答题(共3小题,每小题10分,共30分)1. 一棵二叉排序树按先序遍历得到的关键字序列为:(50,38,30,45,40,48,70,60,75,80)。
回答以下问题:(1)画出该二叉排序树。
(2)求在等概率条件下的查找成功的平均查找长度。
2. 有一个无向带权图如图2所示,采用Dijkstra算法求顶点0到其他顶点的最短路径和最短路径长度,要求给出求解过程(即给出求最短路径中各步骤的S、dist和path值)。
图2 一个无向图3. 简要叙述堆和二叉排序树的区别,并给出关键字序列{3,26,12,61,38,40,97,75,53,87}调整为大根堆后的结果(直接画出调整后的大根堆)。
三、算法设计题(共3小题,每小题10分,共30分)1.有一个线性表(a1,a2,…,a n),采用带头节点的单链表L存储,设计一个就地算法将其所有元素逆置。
所谓就地算法是指算法的空间复杂度为O(1)。
2.假设二叉树采用二叉链存储结构,设计一个算法把一棵含有n个节点的二叉树b复制到另一棵二叉树t中。
给出你所设计算法的时间和空间复杂度。
3. 假设一个不带权的有向图G采用邻接表存储,设计一个算法判断图G中是否存在顶点i到顶点j的边,若存在这样的边返回1,否则返回0。
武汉大学计算机学院2011年-2012学年第一学期“数据结构”考试试题参考答案(A)要求:所有的题目的解答均写在答题纸上,需写清楚题目的序号。
每张答题纸都要写上姓名和序号。
一、单项选择题(每小题2分,共40分)1. B2. B3. C4. C5. B6. B7. B8. D9. B 10. A11. B 12. ①B ②D 13. A 14. B 15. D16. A 17. C 18. D 19. C 20. A二、问答题(共3小题,共30分)1.答(1)先序遍历得到的序列为:(50,38,30,45,40,48,70,60,75,80),中序序列是一个有序序列,所以为:(30,38,40,45,48,50,60,70,75,80),由先序序列和中序序列可以构造出对应的二叉树,如下图所示。
(2)ASL成功=(1×1+2×2+4×3+3×4)/10=2.9。
【评分说明】(1)占8分,(2)占2分。
2. 答:对应的邻接矩阵如下:0 7 11 ∞∞∞7 0 10 9 ∞∞11 10 0 5 7 8∞9 5 0 ∞∞∞∞7 ∞0 6∞∞8 ∞ 6 0求解过程如下:S dist path0 1 2 3 4 5 0 1 2 3 4 5数据结构试题 5{0} 0 7 11 ∞∞∞0 0 0 -1 -1 -1 {01} 0 7 11 16 ∞∞0 0 0 1 -1 -1 {0 1 2} 0 7 11 16 18 19 0 0 0 1 2 2{0 1 2 3} 0 7 11 16 18 19 0 0 0 1 2 2{0 1 2 3 4} 0 7 11 16 18 19 0 0 0 1 2 2{0 1 2 3 4 5} 0 7 11 16 18 19 0 0 0 1 2 2求解结果如下:从0到1的最短路径长度为:7 路径为:0,1从0到2的最短路径长度为:11 路径为:0,2从0到3的最短路径长度为:16 路径为:0,1,3从0到4的最短路径长度为:18 路径为:0,2,4从0到5的最短路径长度为:19 路径为:0,2,5【评分说明】结果为5分,过程为5分。
3. 简要叙述堆和二叉排序树的区别,并给出关键字序列{3,26,12,61,38,40,97,75,53,87}调整为大根堆后的结果(直接画出调整后的大根堆)。
答:以小根堆为例,堆的特点是双亲节点的关键字必然小于等于孩子节点的关键字,而两个孩子节点的关键字没有次序规定。
而二叉排序树中,每个双亲节点的关键字均大于左子树节点的关键字,每个双亲节点的关键字均小于右子树节点的关键字,也就是说,每个双亲节点的左、右孩子的关键字有次序关系。
关键字序列{3,26,12,61,38,40,97,75,53,87}调整为大根堆后的结果如下:【评分说明】两小题各占5分。
三、算法设计题(每小题10分,共30分)1.解:对应的算法如下:void Reverse1(LinkList *&L){ LinkList *p=L->next,*q; //p指向开始节点L->next=NULL;while (p!=NULL){ q=p->next;p->next=L->next; //将*p节点插入到新建链表的前面L->next=p;p=q;}}【评分说明】单链表类型可自行设计。
2.解:对应的递归算法如下:void Copy(BTNode *b,BTNode *&t){ if (b==NULL)t=NULL;else{ t=(BTNode *)malloc(sizeof(BTNode));t->data=b->data; //复制一个根节点*tCopy(b->lchild,t->lchild); //递归复制左子树Copy(b->rchild,t->rchild);//递归复制右子树}}算法的时间复杂度为O(n),空间复杂度为O(n)。
【评分说明】二叉链类型可自行设计。
【评分说明】算法的时间和空间复杂度各占1分。
3. 解:对应的算法如下:int HasArc(AGraph *G,int i,int j) //判断图G中是否存在边<i,j> { ArcNode *p;p=G->adjlist[i].firstarc;while (p!=NULL && p->adjvex!=j)p=p->nextarc;if (p==NULL)return 0;elsereturn 1;}【评分说明】邻接表类型可自行设计。