数据结构2010
2010年10月自考数据结构试题及答案
1 / 72010年10月全国自考数据结构试题课程代码:02331一、单项选择题(本大题共15小题,每小题2分,共30分) 1.数据的四种存储结构是(A )A.顺序存储结构、链接存储结构、索引存储结构和散列存储结构B.线性存储结构、非线性存储结构、树型存储结构和图型存储结构C.集合存储结构、一对一存储结构、一对多存储结构和多对多存储结构D.顺序存储结构、树型存储结构、图型存储结构和散列存储结构2.若对某线性表最常用的操作是在最后一个结点之后插入一个新结点或删除最后一个结点,要使操作时间最少,下列选项中,应选择的存储结构是(C ) A.无头结点的单向链表 B.带头结点的单向链表 C.带头结点的双循环链表D.带头结点的单循环链表3.若带头结点的单链表的头指针为head ,则判断链表是否为空的条件是(B ) A.head=NULL B.head->next=NULL C.head!=NULLD.head->next!=head4.若元素的入栈顺序为1,2,3....,n ,如果第2个出栈的元素是n ,则输出的第i(1<=i<=n)个元素是(D )A.n-iB.n-i+lC.n-i+2D.无法确定5.串匹配算法的本质是(C )A.串复制B.串比较C.子串定位D.子串链接6.设有一个10阶的对称矩阵A ,采用行优先压缩存储方式,a 11为第一个元素,其存储地址为1,每个元素占一个字节空间,则a 85的地址为(C ) A.13 B.18 C.33D.407.若一棵二叉树的前序遍历序列与后序遍历序列相同,则该二叉树可能的形状是(B ) A.树中没有度为2的结点 B.树中只有一个根结点 C.树中非叶结点均只有左子树D.树中非叶结点均只有右子树8.若根结点的层数为1,则具有n 个结点的二叉树的最大高度是(A )A.nB.2log n ⎢⎥⎣⎦C.2log n ⎢⎥⎣⎦+1D.n/2 9.在图G 中求两个结点之间的最短路径可以采用的算法是(A )2 / 7A.迪杰斯特拉(Dijkstra )算法B.克鲁斯卡尔(Kruskal )算法C.普里姆(Prim)算法D.广度优先遍历(BFS)算法10.下图G=(V,E)是一个带权连通图,G 的最小生成树的权为(D ) A.15 B.16 C.17 D.1811.在下图中,从顶点1出发进行深度优先遍历可得到的序列是(B ) A.1 2 3 4 5 6 7 B.1 4 2 6 3 7 5 C.1 4 2 5 3 6 7 D.1 2 4 6 5 3 712.如果在排序过程中不改变关键字相同元素的相对位置,则认为该排序方法是(B ) A.不稳定的 B.稳定的 C.基于交换的D.基于选择的13.设有一组关键字(19, 14, 23, 1,6,20, 4,27, 5,11, 10, 9),用散列函数H(key)=key%13构造散列表,用拉链法解决冲突,散列地址为1的链中记录个数为(C ) A.1 B.2 C.3D.414.已知二叉树结点关键字类型为字符,下列二叉树中符合二叉排序树性质的是(D)15.若需高效地查询多关键字文件,可以采用的文件组织方式为(D)A.顺序文件B.索引文件C.散列文件D.倒排文件二、填空题(本大题共10小题,每小题2分,共20分)16.下面程序段的时间复杂度为(O(n))。
数据结构复习题(2010)
数据结构期末复习题1(0907)一、基本要求1.数据结构基本概念(1)数据、数据对象和数据结构(逻辑、物理结构、基本操作)(2)抽象数据类型(3)算法的特征及评价的标准2.线形结构(1)顺序表的特点及存储结构(2)链表的特点及存储结构(3)栈的特点及基本操作(4)队列的特点及基本操作(5)顺序串和链串的存储结构(6)二维数组的地址计算(7)特殊矩阵的概念及存储结构(对称、三角、对角、稀疏)(8)广义表的概念及存储结构(9)线性表的排序(简单插入、选择和交换)(10)线性表的查找(顺序、折半和分块索引)3.树形结构(1)二叉树的性质及存储结构(顺序、二叉链表、三叉链表)(2)二叉树的遍历(3)线索二叉树(4)树的存储结构(双亲、孩子-双亲、孩子-兄弟链表)(5)树、二叉树与森林的转化方法(6)哈夫曼树(7)二叉排序树及平衡化(8)堆排序树(9)树的等价类划分4.图形结构(1)图的定义及存储结构(2)图的深度优先和广度优先遍历。
(3)图的连通性(4)最小(代价)生成树(5)拓扑排序(6)关键路径(7)最短路径(单源、顶点对)5.查找表(1)散列表的概念(2)散列表解决散列冲突的方法(开放地址法、链地址法)(3)散列表的插入和删除(4)B_树的概念、存储结构及基本操作(查找、插入、删除)6.排序方法(1)希尔排序(2)快速排序(3)二路归并排序(4)基数排序(链式、计数)(5)排序方法比较和分析(时间性能、空间性能、稳定性)二、单选题1.要求具有同一逻辑结构的数据元素具有相同的特性,其含义为A. 数据元素具有同一的特点B.数据元素其对应的数据个数及数据项的类型要一致C. 每个数据元素都一样D. 仅需要数据元素包含的数据项的个数相同2.在一个单链表中,已知*q结点是*p结点的前驱结点,若在*q 和*p之间插入结点*s,则执行操作A. s->next=p->next;p->next=s;B. s->next=p;p->next=sC. q->next=s;s->next=p;D. p->next=s;s->next=q;3.设指针p指向双链表的某一结点,则双链表结构的对称性可以用下面的操作来反映A. p->prior->next=p->next->next;B. p->prior->prior=p->next->prior;C. p->prior->next=p-> next->prior;D. p->next->next= p->prior->prior;4.表达式a*(b+c)--d的后缀表达式是A.abcd*+- B.abc+*d-C.abc*+d- D.-+*abcd5.设一个栈的输入序列为A,B,C,D,则借助一个栈所得到的输出序列不可能是A.A,B,C,D B.D,C,B,AC. A,C,D,BD. D,A,B,C6.设有一个顺序栈的入栈序列是a、b、c,则3个元素都出栈的可能不同排列个数为A.4 B.5 C. 6 D. 77.若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为pl,p2,p3,…,pn,若pl是n,则pi是A.i B.n-i C.n-i+1 D.不确定8.已知广义表LS=((a,b,c),(d,e,f)),运算head和tail函数取出元素e的运算是A.head(tail(LS))B.tail(head(LS))C.head(tail(head(tail(LS))))D.head(tail(tail(head(LS))))9.二维数组A的每个元素是由6个字符组成的串,其行下标i=0,l,…,8,列下标为j=1,2.….10。
2010wgy《数据结构》总复习题参考答案
1
27.带有一个头结点的单链表 head 为空的条件是 28.在 hq 的链队列中,判定只有一个结点的条件是
head->next==NULL 带头结点
带头结点
29.在一个长度为 n 的循环链表中,删除其元素值为 x 的结点的时间复杂度为 __ O(n)____。 30.已知一棵二叉树的先序序列为 ABCD ,中序序列为 BCAD ,则它的后序序列为 __cbda____。 31.对关键字序列 (50, 34,92,19, 11,68,56, 41,79) 进行直接插入排序,当将第 7 个关键字 56 插入到当前的有序子表中时,为寻找插入位置需进行 ___3___次关键字之间的比较。 32.将有序表中 n 个元素依次插入到一棵空的二叉排序树中,则在等概率查找的情况下,该二叉排 序 树在查找成功时的平均查找长度是 __(n+1)/2____。特别注意是有序表 33.已知二叉树中叶子数为 50,仅一个孩子的结点数为 30,则总结点数____。度为 2 的结点数 49 34.直接选择排序算法在最好情况下所作的交换元素的次数为____0________。 35.有 n 个顶点的连通图至少有_n-1___条边。 36.在双向链表中,删除指针 P 所指结点的语句序列是_______略_____________________,在 p 之 后插入 s 节点的语句序列是___________________略___________________________________。 37.在有 n 个叶子结点的哈夫曼树中,总结点数是 __略__。 38.在有序表 A[1..18]中,采用二分查找算法查找元素值等于 A[7]的元素,所比较过的元素的下标 依次为____________________。9,4,6,7 39.链表对于数据元素的插入和删除不需移动结点,只需改变相关结点的 ____指针____域的值。 40.在一个链式栈中,若栈顶指针等于 NULL 则为__空______。 41.n (n﹥0) 个顶点的无向图最多有____n(n-1)/2____条边,最少有____0____条边。
数据结构真题及答案(2010)
杭州电子科技大学2010《数据结构》真题及解析一、是非题(每小题2分,共20分)1.线性表的顺序存储结构优于链式存储结构。
2.栈和队列也是线性表。
如果需要,可对它们中的任一元素进行操作。
3.非空广义表的表头和表尾都有可能是原子或广义表。
4.在二叉树的先序遍历序列中,任意-个结点均处在其孩子结点的前面。
5.通常,在二叉树的第i层上有2^i-1个结点。
6.二叉树按某种次序线索化后,任一结点均有指向其前驱和后继的线索指针。
6.赫夫曼树中的结点个数一定是奇数。
8.用邻接矩阵(数组表示法)存储一个图时,所需的存储空间大小与图的边数无关。
9.对于一棵m阶的B-树而言.树中每个结点至多有m个关键字,除根之外的所有非终端结点至少有┌m/2┐个关键字。
10.对于任何待排序序列来说,快速排序均快于冒泡排序。
二、选择题(每小题2分,共20分)1.递归过程可借助于_____转化为非递归过程。
A:线性表 B:队列 C:栈 D:数组2.循环队列用数组A[0..m-1]存放其元素值,设头尾游标分别为front(队头元素的位置)和rear(队尾元素的位置),则当前队列中的元素个数是_______。
A: rear-front B: rear-front+1C: (rear-front+m)%m D: (rear-front+1+m)%m3.对广义表A=((a, (6)),(c,()),d)执行操作gettail(gethead(gettail (A)))的结果是:________。
A:() B:(()) C:d D:(d)4.对二叉排序树______可得到有序序列。
A:按层遍历 B:前序遍历C:中序遍历 D:后序遍历5.在有n个结点的二叉树的二叉链表表示中,空指针数为________。
A:不定 B: n+1 C:n D:n-16.图示的三棵二叉树中_____为最优二叉树。
A: B: C:7.设无向图G=(V,E)和G=(V′,E′),若G′是G的生成树,则下面不正确的说法是_________。
全国2010年1月自考数据结构导论考试试题,答案,笔记
全国2010年1月自考数据结构导论考试试题,答案,笔记全国2010年1月高等教育自学考试数据结构导论试题课程代码:02142一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.下述文件中适合于磁带存储的是( A )A.顺序文件B.索引文件C.散列文件D.多关键字文件2.某二叉树的后根遍历序列为dabec,中根遍历序列为debac,则先根遍历序列为( D )A.acbedB.becabC.deabcD.cedba3.含有n个结点的二叉树用二叉链表表示时,空指针域个数为( C )A.n-1B.nC.n+1D.n+2 注:子域为2n个,有n-1个孩子。
4.在一个图中,所有顶点的度数之和与图的边数的比是( C)A.1∶2B.1∶1C.2∶1D.4∶15.长度为n的链队列用单循环链表表示,若只设头指针,则出队操作的时间复杂度为( A)A.O(1)B.O(1og2n) 二分法注:若只有尾指针,那么入和出都为O(1)C.O(n) (入队)D.O(n2) -冒泡6.下述几种排序方法中,要求内存量最大的是( C )A.插入排序B.快速排序C.归并排序D.选择排序7.对n个不同值进行冒泡排序,在元素无序的情况下比较的次数为( D)A.n-1B.nC.n+1D.n(n-1)/28.对线性表进行二分查找时,要求线性表必须( C)A.以顺序方式存储B.以链式方式存储C.以顺序方式存储,且结点按关键字有序排列D.以链接方式存储,且结点按关键字有序排列9.在表长为n的顺序表上做删除运算,其平均时间复杂度为( B )A.O(1)B.O(n) 注:在双向循环链表中,删除最后一个结点C.O(nlog2n)D.O(n2) 的时间复杂度为O(1)10.当利用大小为n 的数组顺序存储一个队列时,该队列的最大容量为( B )A.n-2B.n-1C.nD.n+1 11.有关插入排序的叙述,错误的...是( C)A.插入排序在最坏情况下需要O(n 2)时间B.插入排序在最佳情况可在O(n)时间内完成C.插入排序平均需要O(nlog 2n)时间-----快速排序需要o (nlog2n )D.插入排序的空间复杂度为O(1) 12.有关树的叙述正确的是( C)A.每一个内部结点至少有一个兄弟B.每一个叶结点均有父结点C.有的树没有子树D.每个树至少有一个根结点与一个叶结点。
2010《数据结构》期末试卷_B卷及答案
一、(本题10分)(1)线性表和广义表的主要区别点是什么?已知广义表: C=(a,(b, (a,b)), ((a,b), (a,b))), 则tail(head(tail(C))) =?(2)满足什么条件可以实施二分查找?二分查找的时间复杂度是多少?答:(1)线性表和广义表都是元素a1,a2,…,an 组成的序列,其主要区别点在于:在线性表中,ai 是单个元素(原子);在广义表中,ai 可以是单个元素(原子),也可以是广义表。
tail(head(tail(C))) = ((a,b))(2)序列a1,a2,…,an 必须在数组(顺序表)中,且有序;时间复杂度为O(log n)。
二、(本题10分)证明:一棵二叉树的先序序列和中序序列可惟一确定这棵二叉树。
证明:设一棵二叉树的先序序列和中序序列分别存放在一维数组A[1..n]和B[1..n]中。
因为先序序列的第一个结点A[1]为二叉树的根结点,在中序序列中找到与A[1]相同的结点,不妨假设B[i]=A[1];又因为二叉树的任何一棵子树的结点是紧挨在一起的,故所构造的二叉树的左子树由先序序列A[2..i]和中序序列B[1..i-1]确定的二叉树组成,而所构造的二叉树的右子树由先序序列A[i+1..n]和中序序列B[i+1..n]确定的二叉树组成。
这是一个递归过程,当先序序列和中序序列分别含有3个以下的结点时,可惟一确定对应的二叉树。
因此,由一棵二叉树的先序序列和中序序列可以惟一确定这棵树。
三、(本题15分)某带权有向图如下:(1)写出深度优先搜索结点访问序列,并画出深度优先生成树;(当有多种选择时,编号小的结点优先。
)始点 51 11 32 23 3 1AC D E FBG 厦门大学《_数据结构_》课程期末试卷信息科学与技术学院计算机科学系2008年级___专业主考教师:陈怡疆 庄朝晖 试卷类型:(B 卷)终点(2)写出该图的拓扑序列(当有多种选择时,编号小的结点优先。
2010年1月自考数据结构试题和答案
2010年1月高等教育考试数据结构试题和答案课程代码:02331一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.若一个算法的时间复杂度用T(n)表示,其中n的含义是(A)A.问题规模B.语句条数C.循环层数D.函数数量2.具有线性结构的数据结构是(C)A.树B.图C.栈和队列D.广义表线性结构有:顺序表、栈和队列、串3.将长度为n的单链表连接在长度为m的单链表之后,其算法的时间复杂度为(C)A.O(1) B.O(m)C.O(n)D.O(m+n)4.在带头结点的双向循环链表中插入一个新结点,需要修改的指针域数量是(D)A.2个B.3个C.4个D.6个P28中void DInsertBefore(DListNode *p,DataType x)//在带头结点的双链表中,将值为x的新结点插入结点*p之前,设p≠NULL{DListNode *s=malloc(sizeof(ListNode)); ①s->data=x; ②s->prior=p->prior; ③s->next=p; ④p->prior->next=s; ⑤p->prior=s; ⑥}5.假设以数组A[60]存放循环队列的元素,其头指针是front=47,当前队列有50个元素,则队列的尾指针值为(D)A.3 B.37C.50 D.97辅导书P22中对于循环向量中的循环队列,写出通过队头队尾指针表示的队列长度公式。
(front指向实际队头,rear指向实际队尾的下一元素位置。
)当rear≥front时,队列长度L=rear-front;当rear<front时,L=m+(rear-front)。
这两种情况可统一为L=(m+(rear-front))%m,这里m为向量的大小。
本题中m=606.若栈采用链式存储结构,则下列说法中正确的是(B)A.需要判断栈满且需要判断栈空B.不需要判断栈满但需要判断栈空C.需要判断栈满但不需要判断栈空D.不需要判断栈满也不需要判断栈空P36中因为链栈中的结点是动态分配的,可以不考虑上溢,所以无需定义stackFull运算。
2010年内蒙古自治区数据结构试题及答案必过技巧
5、当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为( )参数,以节省参数值的传输时间和存储参数的空间。
A.整形 B.引用型
C.指针型 D.常值引用型?
C.O(1Ogzn) D.O(n2)
25、与单链表相比,双链表的优点之一是 D 。
A.插入、删除操作更简单
B.可以进行随机访问
C.可以省略表头指针或表尾指针
D.顺序访问相邻结点更灵活
26、有向图采用邻接矩阵存储,某一行中非零元素的个数等于
A.对应顶点v的度
B.对应顶点v的出度
C.对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。
33、长度为n的顺序表,删除位置i上的元素(0≤i≤n一1),需要移动的元素个数为
A.n—i B.n—i—l C.i D.i+1
34、通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 B 。
30、有向图采用邻接矩阵存储,某一行中非零元素的个数等于
A.对应顶点v的度
B.对应顶点v的出度
C.对应顶点v的入度
D.依附于对应顶点v的边数
31、算法分析的目的是 C ,算法分析的两个主要方面是 A 。
(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系
6、链表不具备的特点是 A 。
A.可随机访问任一结点 B.插入删除不需要移动元素
C.不必事先估计存储空间 D.所需空间与其长度成正比
7、与单链表相比,双链表的优点之一是 D 。
A.插入、删除操作更简单
全国2010年10月自考数据结构真题及答案
请画出该二叉树对应的森林。 29.请回答下列问题: (1)英文缩写DAG的中文含义是什么? (2)请给出下面DAG图的全部拓扑排序。
四、算法阅读题(本大题共4小题,每小题5分,共20分) 30.已知线性表(a1,a2,a3...,an)按顺序存放在数组a中,每个元素均为整数,下列程序的功能是将所有
自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 俱乐进入俱乐部
20.用5个权值{3, 2,4,5,1}构造的哈夫曼(Huffman)树的带权路径长度是___________。 21.若无向图G中有n个顶点m条边,采用邻接矩阵存储,则该矩阵中非0元素的个数为___________。 22.影响排序效率的两个因素是关键字的___________次数和记录的移动次数。 23.对任一m阶的B树,每个结点中最多包含___________个关键字。 24.若两个关键字通过散列函数映射到同一个散列地址,这种现象称为___________。
Info otherinfo; }SeqList; void InsertSort(SeqList R[],int n)
{/* 待排序列保存在R[1..n]中*/ SeqList x; int i,j,k,lo,hi,mi; for (i=2;i<=n;i++) { (1) lo=1; hi=i-l; while { mi=(lo+hi)/2; if ( (2) ) break; hi=mi-l; (lo<=hi) ;
15.若需高效地查询多关键字文件,可以采用的文件组织方式为( A.顺序文件 C.散列文件 B.索引文件 D.倒排文件
)
二、填空题(本大题共10小题,每小题2分,共20分) 请每小题的空格中填上正确答案。错填、不填均无分。 16.下面程序段的时间复杂度为___________。 sum=1; for(i=0;sum<n;i++) sum+=1; 17.已知链表结点定义如下: typedef struct node{
《数据结构》授课教案
插入和删除需同时修改两个方向的指针。
4、双向链表的插入操作
1)pnext = q
2)pprior =qprior
3)qpriornext = p
4)qprior =p
课堂讨论
与练习
1.在单链表、双链表和单循环链表中,若仅知道指针p指向某结点,不知道头指针(指向头结点的指针),能否将结点*p(即p指向的结点)从相应的链表中删除(不允许进行结点之间数据域的复制)?若可以,时间复杂度各是多少?
2、双向链表存储结构定义:
typedef struct DuLNode {
ElemType data;
struct DuLNode *prior;
struct DuLNode *next;
} DuLNode, *DuLinklist;
3、双向链表的操作:
双指针使得链表的双向查找更为方便、快捷。NextElem和PriorElem的执行时间为O(1)。
3、链表的分类:单链表、循环链表和双向链表。
3、单链表:
(1)单链表概念:
链表中的每一个结点中只包含一个指针域的称为单链表。
(2)单链表的存储结构定义
typedef struc LNode{
ElemTypedata;
struct LNode*next;
}LNode, *LinkList;
(3)单链表的操作:
教学
难点
1.三种链表的插入删除算法
2.使用本章所学的基本知识设计有效算法,解决与线性表相关的应用问题。
授课要点
2.3线性表的链式表示和实现
2.3.1线性链表
1、线性表链式存储结构的特点
Pascal线性数据结构20100722
数组的插入与删除均需要移动后面的元素
第18页,共57页。
链表的操作:
定位:访问第i个元素从头统计找
插入:
删除:
插入和删除无需移动任何元素
第19页,共57页。
(二)、线性表的基本操作
◆查找 ◆插入
◆删除
数组顺序存储方式
第20页,共57页。
促销
【问题描述】
begin
a[0]:=a[i];
{取第i个元素作为待插入元素}
j:=i-1;
{从已排好的最后一个a[i-1]开始比较}
while a[0]<a[j] do
begin
a[j+1]:=a[j]; {当待插入元素a[0]小于当前a[j]时, a[j]后移}
j:=j-1;
end;
{当a[0]>=a[j]时循环结束}
a[j+1]:=a[0];
{在第j+1个位置插入a[i]元素}
end;
第33页,共57页。
2、 有序表的合并
a,b两个从小到大有序的线性表,每个表内无重复的元素,合并成 c。a和b的长度不超过30000。
要求合并成c后也满足从小到大的顺序。
输入:
4 1 4 8 10 6
2 3 7 9 11 13 输出:
//借助辅助数组b,把有序的a[s..m]和a[m+1..t]合并为有序的a[s..t]
var i,j,k:integer;
begin
i:=s; j:=m+1; k:=s-1;
while (i<=m)and (j<=t) do
begin
inc(k);
数据结构实验报告 单链表基本操作
printf("查找不到该元素!\n");
printf("---------------------------------------------\n"); return 0; } 二: 1. 编写头文件及各个函数。这里函数有 CreateList_L() 创建函数,MergeList_L() 是排序函 2. 数。MergeList_L 函数不改变存储,只改变指针。PrintList_L() 用来打印结果。 写主函数。在主函数里输入元素个数,调用函数创建链表输入各个元素值。在调用函数
五、实验结果与讨论
一:
二:
-5-
六、总结
在查找元素的函数中如果按照下面的写法则会产生如下的结果:
于是必须改成 while(p&&(p->data!=e))
-6-
原因:先判断 p 是因为如果先判断 p->data 有可能此时 p 已指向空,p->data 没有值
七、思考与提高
1.如果上面实验内容 2 中合并的表内不允许有重复的数据该如何操作? 2.如何将一个带头结点的单链表 La 分解成两个同样结构的单链表 Lb,Lc, 使得 Lb 中只含 La 表中奇数结点,Lc 中含有 La 表的偶数结点?
-3-
排序,改变指针。输出。 3. 完整代码如下: #include<stdio.h> #include<stdlib.h> #define TRUE 1 #define FALSE 0 #define ERROR 0 #define OK 1 typedef int Status; typedef int ElemType; typedef struct LNode { ElemType data; struct LNode *next; }LNode,*Linklist; Status CreateList_L(Linklist &L,int n) { Linklist p,q; int i=0; L=(Linklist)malloc(sizeof(LNode)); L->next=NULL; p=L; printf("请输入%d 个元素:\n",n); for(i=0;i<n;i++) { q=(Linklist)malloc(sizeof(LNode)); scanf("%d",&q->data); q->next=p->next; } return OK; } void MergeList_L(Linklist &La, Linklist &Lb, Linklist &Lc) { Linklist pa, pb, pc; pa = La->next; pb = Lb->next; while (pa && pb) { if(pa->data <= pb->data) { pc->next = pa; else { pc->next = pb; Lc = pc = La; p->next=q; p=q;
浙江理工大学数据结构与数据库技术2010真题
浙江理工大学二O一O年硕士学位研究生招生入学考试试题考试科目:数据结构与数据库技术代码:938 (*请考生在答题纸上答题,在此试题纸上答题无效)第一部分:数据结构(本部分共90分)一、程序设计题1. 假设以带头节点的循环链表表示队列,并且只设一个队尾指针rear,不设队首指针,试编写相应的入队列和出队列一个结点的算法。
(20分)2.一颗树的根其层次定义为0。
任何其它结点的层次定义为比它的双亲的层次大1。
树的深度是层次最大的结点的层次。
一颗树的内部路径长度是该树中边的总数。
已知二叉树的根结点为t,其二叉链表结构定义如下:typedef struct node {char data;struct node *lch,*rch;int level;} tnode ;这里,data为结点的名称,lch为其左孩子,rch为其右孩子,level为结点的层次。
试编写非递归程序算法,输出这颗树的深度和内部路径长度。
(25分)3.已知哈希(Hash)函数H(k)=k%p(k为线性表的关键字),用开放地址法处理冲突,其中:d1=H(k),d i=( d i-1+m)%p (i=2,3,,…);试编写程序算法,在H[0~p-1]的散列地址空间中,对关键字序列a[0],a[1],…,a[p-1]构造哈希表(假设每个关键字最终都能找到地址),并计算输出在等概率情况下查找成功的平均查找长度。
(20分)4.已知单链表结构如下所示。
头指针为head,关键字域为key。
试编写程序构造一个单链表,将串s中的每个字符存放到单链表中去(每个结点存放一个字符),同时在已有的单链表基础上,编写程序采用直接插入排序算法将单链表中的各个结点按字符值大小进行升序排序。
(25分)typedef struct node {char key;struct node *next;} lnode;第二部分:数据库技术(本部分共60分)二、解答题(下列各题中任选6小题解答,每小题10分,按得分最多的6小题计算分数,本题得分最多不超过60分)数据库Sales用来存放某企业销售数据,它有4张表,表Products用来存放产品信息(其中合计销售额amount是未知的);表Customers用来存放客户信息;表Orders用来存放订单总体信息;OrderDetails用来存放订单明细信息。
数据结构--2010河北工大考研题及答案
2010年一、1. 所谓的双向链表,是指在每一个结点中,有两个指针域,其中一个指向该结点的直接后继结点,而另一个则指向。
【答案】其直接前趋结点2. 线性表的顺序存储结构是一种存取的存储结构。
【答案】随机3. 若一棵根树的每个结点最多只有孩子,且孩子又有之分,次序不能颠倒,则称此根树为。
【答案】两个,左、右,二叉树4. 满二叉树是指高度为k,且有个结点的二叉树。
二叉树的每一层上,最多有个结点。
【答案】2k-1 2i-15. 在各种查找方法中,平均查找长度与结点个数n无关的查找方法是。
【答案】哈希表查找法6. 广义表(a,(a,b),d,e,((i,j),k))的长度是,深度是。
【答案】5,3二、1.下面哪一种情况不利于发挥堆排序的优势。
【答案】待排序的数据量小2.如果采用直接选择排序法来排序一个长度为5,且已按相反顺序排序的数组,共需的比较次数是。
【答案】103. 在一棵包含n个结点的顺序二叉树上,最远的两个结点有多远。
【答案】在一棵树包含N个节点完全二叉树上,相距最远的两节点的距离是2logN-34. 折半查找不成功时,指针Low和High的关系是。
【答案】Low>High5.在待排元素序列基本有序的前提下,下面给出的几种排序方法效率最高的是。
【答案】直接插入排序6.设A是一个包含有10个数据元素的有序数组,如果我们利用折半查找法在A中查找任意的数据元素X,假定在确定目标元素是否等于、小于或大于A[i]时仅需比较一次。
则平均的查找成功时间是。
【答案】2.9三、1.能在线性表上进行的操作,就一定能在栈上进行。
【答案】错2. 如果关键字是主关键字的话,则对一个无序的数据元素序列经按主关键字排序后得到的结果是唯一的。
【答案】对3.由于线性链表的存取必须顺序进行,所以在线性链表上删除一个结点时,必须移动其后的所有结点,才能继续保持一个顺序存取的关系。
【答案】错4. 线性表顺序存储结构的存储密度大于线性表的链式存储结构。
2010年数据结构考试模拟题及答案
2010年数据结构考试模拟题型一、单选题(每题2 分,共20分)1. 对一个算法的评价,不包括如下()方面的内容。
A.健壮性和可读性B.并行性C.正确性D.时空复杂度2. 在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行( )。
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. 对线性表,在下列哪种情况下应当采用链表表示?( )A.经常需要随机地存取元素B.经常需要进行插入和删除操作C.表中元素需要占据一片连续的存储空间D.表中元素的个数不变4. 一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是( )A. 2 3 1B. 3 2 1C. 3 1 2D. 1 2 35. AOV网是一种()。
A.有向图B.无向图C.无向无环图D.有向无环图6. 采用开放定址法处理散列表的冲突时,其平均查找长度()。
A.低于链接法处理冲突 B. 高于链接法处理冲突C.与链接法处理冲突相同D.高于二分查找7. 若需要利用形参直接访问实参时,应将形参变量说明为()参数。
A.值B.函数C.指针D.引用8. 在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的()。
A.行号B.列号C.元素值D.非零元素个数9. 快速排序在最坏情况下的时间复杂度为()。
A.O(log2n) B.O(nlog2n) C.0(n) D.0(n2)10. 10. 从二叉搜索树中查找一个元素时,其时间复杂度大致为( )。
A. O(n)B. O(1)C. O(log2n)D. O(n2)二、填空题(每题6 分,共24分)1. 数据结构是指数据及其相互之间的______________。
当结点之间存在M对N(M:N)的联系时,称这种结构为_____________________。
2010版030531005数据结构教学大纲-56
《数据结构》课程教学大纲课程代码:030531005课程英文名称:Data Struct课程总学时:56 讲课:48 实验:8 上机:适用专业:计算机科学与技术大纲编写(修订)时间:2010.7一、大纲使用说明(一)课程的地位及教学目标数据结构课程是计算机及信息相关专业的一门重要的专业基础课,它较详细地阐述了使用计算机解决具体问题时所建立的数学模型的逻辑结构与存储结构的多种类型以及对数据具体进行操作的算法实现。
通过本课程的学习,使学生掌握使用高级语言编程时组织数据的基本理论和方法,是学生进一步学习其他专业课程的必备基础。
通过本课程的学习,学生将达到以下要求:1.掌握数据结构的种类及其特点;2.掌握不同数据结构的不同存储结构的定义;3.具有在不同存储结构上编写各种操作算法的能力;4.运用数据结构知识处理实际问题。
(二)知识、能力及技能方面的基本要求1.知识:掌握几种典型数据结构及其逻辑结构、物理结构、基本操作实现。
2.能力:要求学生了解各种形式多样的客观问题中所涉及的数据对象,通过适当的分析,得到数据的逻辑结构、物理结构。
提高数据的分析能力、数据结构的物理结构的定义能力、编写算法的能力、算法的分析能力等。
3.技能:运用不同的数据结构在不同的存储结构上解决实际问题的技能,能运用高级语言正确定义数据的逻辑结构和选择有效的存储结构。
在解决具体问题时,充分考虑其操作的实现算法应注重时间效率和空间效率。
对查找与排序技术,应掌握基本的算法,并学会合理使用。
(三)实施说明1.教学方法:课堂讲授中要重点对基本概念、基本方法和解题思路的讲解;采用启发式教学,培养学生思考问题、分析问题和解决问题的能力;引导和鼓励学生通过实践和自学获取知识,培养学生的自学能力;增加讨论课,调动学生学习的主观能动性;注意培养学生提高利用标准、规范及手册等技术资料的能力。
讲课要联系实际并注重培养学生的创新能力。
2.教学手段:本课程属于专业基础课,在教学中采用电子教案、CAI课件及多媒体教学系统等先进教学手段,以确保在有限的学时内,全面、高质量地完成课程教学任务。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2010年招收攻读硕士学位研究生入学考试试题(副题)
********************************************************************************************
学科、专业名称:计算机技术、软件工程
研究方向:各专业
考试科目名称:830数据结构
考生注意:所有答案必须写在答题纸(卷)上,写在本试题上一律不给分。
一.选择题(每题2分,共40分)
1.具有n个顶点的完全有向图的边数为( ).
A n(n-1)/2
B n(n-1)
C n2
D n2-1
2.队列操作的原则是()
A.先进先出
B.后进先出
C.只能进行插入
D.只能进行删除
3. 顺序栈S的Pop(S, e)操作弹出元素e,则下列( )是正确的操作。
A. e=*(s.top)
B. e=*(s.top--)
C. e=*(--s.top)
D. e=--s.top
4. 对具有n个结点的有序表折半查找时,其时间复杂度是 ( ) 。
A. O(log2n)
B. O(nlog2n)
C. O(n)
D. O(n2)
5. 若线性表最常用的操作是存取第i个元素及其前趋的值,则采用( )存储方式节省时间。
A.单链表
B.双链表
C.单循环链表
D.顺序表
6. 线性表的链接实现有利于( )运算
A.插入
B. 读表元素 C .查找 D.定位
7. 设连通图G的顶点数为n,则G的生成树的边数为( )
A. n
B. n-1
C.2n
D. 2n-1
8.从一个长度为n的顺序表中删除第i个元素(1≤i≤n)时,需向前移动()个元素。
A.n-i
B.n-i+1
C.n-i-1
D. i
9. 若有一个栈的输入序列是1,2,3,…,n,输出序列的第一个元素是n,则第i个输出元素是()
A.n-i
B.n-i-1
C.n-i+1
D.不确定
10. 二叉树第i(i≥1)层上至多有( )个结点。
A. 2i
B.2i
C.2i-1
D.2i-1
11.串是一种特殊的线性表, 其特殊性体现在( )
A.可以顺序存储
B.数据元素是一个字符
C.可以链接存储
D.数据元素可以是多个
12. 稀疏矩阵一般的压缩存储方法有两种,即: ( )
A.二维数组和三维数组
B.三元组和散列
C.三元组和十字链表
D.散列和十字链表
考试科目:数据结构共 4 页,第 1 页
13. 在AOE网中,完成工程的最短时间是()。
A.从源点到汇点的最长路径的长度B.从源点到汇点的最短路径的长度
C.最长的回路的长度D.最短的回路的长度
14. 数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为()。
A. 存储结构
B. 逻辑结构
C. 链式存储结构
D. 顺序存储结构
15. 在线索化二叉树中,T所指结点没有左子树的充要条件是()。
A. T->left=NULL
B. T->ltag=1
C. t->ltag=1且t->left=Null
D. 以上都不对
16.在一个具有n个顶点的有向图中,若所有顶点的出度数之和为s,则所有顶点的度数之和为()。
A.s B.s-1 C.s+1 D.2s
17. 快速排序在( )情况下最不利于发挥其长处。
.
A. 被排序的数据量太大.
B. 被排序数据中含有多个相同的关键字
C. 被排序的数据完全无序
D. 被排序的数据已基本有序
18. 判定一个有向图是否存在回路除了可以利用拓扑排序方法外,还可以用()。
A.求关键路径的方法B.求最短路径的Dijkstra方法
C.广度优先遍历算法D.深度优先遍历算法
19.通过一趟排序就能从整个记录序列中选择出具有最大(或最小)关键字的记录,这种排序方法是( ) 。
A. 堆排序
B. 快速排序
C. 直接插入排序
D.归并排序
20. 设单链表中指针p指着结点A,若要删除A之后的结点(若存在),则需要修改指针的操作为( ) 。
A. p->next=p->next->next
B. p=p->next
C. p=p->next->next
D. p->next=p
二.填空题(每空2分,共30分)
1. 在堆排序,希尔排序,快速排序,归并排序算法中,占用辅助空间最多的是。
2. 在散列表(hash)查找中,评判一个散列函数优劣的两个主要条件是:
和。
3.堆栈是一种操作受限的线性表,它只能在线性表的进行插入和删除操作,对栈的访问是按照的原则进行的。
4.顺序查找方法适合于存储结构;在等概率查找的条件下,对于表长是n的顺序表,其平均查找长度是。
5. 循环链表的主要优点是。
6. 一个算法的效率可为效率和效率。
7.对于一个具有n个记录的序列,若采用冒泡排序,记录之间最少的比较次数是,最多的比较次数是。
8.由n个权值构成的哈夫曼树共有个结点。
9. 对于一个具有n个顶点的图,若采用邻接矩阵表示,则矩阵大小至少为× 。
三.判断题(每题1分,共15分,正确的选t,错误的选f)
考试科目:数据结构共 4 页,第 2 页
考试科目:数据结构共 4 页,第 3 页
4.试问执行以下串函数会产生怎样的输出结果?(6分)
void compute( ) {
StrAssign(s, ’This is a book’);
Replace(s, SubString(s,3,7), ’ese are’);
StrAssign(t, Concat(s, ’s’));
StrAssign(u, ’mnmnmnmnmnmn’);
StrAssign(v, SubString(u,6,3));
StrAssign(w, ’c’);
printf(‘t=’, t, ’ v=’, v, ’ u=’, Replace(u, v, w));
}
5.假设用于通信的电文仅由6个字母组成,字母在电文中出现的频率分别为:37,18,22,3,20,10,画出一棵哈夫曼树,试为这6个字母设计哈夫曼编码。
(8分)
6. 输入一个正整数序列{42,38,16,50,100,5,45,3,82,96,35},建立一棵二叉排序树,然后删除结点50。
分别画出该二叉排序树及删除结点50后的二叉排序树。
(8分)
五.算法设计题(30分)
1.算法填空(每空2分,共10分)
下面算法在顺序表L中删除第i个元素,并保留在e中。
Status ListDelete_Sq(SqList &L,int i, ElemType &e)
{ if ((i<1)||(i>L.length_Sq(L)) return ERROR;
p= ;
e=*p;
q=L.elem+ ;
for (++p;p<=q; )
*(p-1)= ;
L.length= ;
return OK;
}
2.设计算法: 输入n个元素的值,创建带头结点的单链线性表L。
(8分)
3.假设在n个城市之间的公路网中,已知直达城市之间的乘车费用,各城市之间均存在通路,从V0城市开始乘车,经过若干个城市到S城市,有多条路线可以选择,设计算法:选择一条最节省费用的路线。
要求:(1)选择一种合适的数据结构,描述n个城市之间的公路网;(4分)(2)用伪代码描述求从V0城市到S城市最节省费用的路线。
(8分)
考试科目:数据结构共 4 页,第 4 页。