02331数据结构份历年真题.docx
- 文档编号:8809112
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:11
- 大小:120.33KB
02331数据结构份历年真题.docx
《02331数据结构份历年真题.docx》由会员分享,可在线阅读,更多相关《02331数据结构份历年真题.docx(11页珍藏版)》请在冰豆网上搜索。
02331数据结构份历年真题
全国2008年10月高等教育自学考试
数据结构试题
课程代码:
02331
一、单项选择题(本大题共15小题,每小题2分,共30分)
在每小题列出的四个备选项中只有一个是最符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.如果在数据结构中每个数据元素只可能有一个直接前驱,但可以有多个直接后继,则该结构是()
A.栈B.队列
C.树D.图
2.下面程序段的时间复杂度为()
for(i=0;i for(j=0;j A[i][j]=i*j; A.O(m2)B.O(n2) C.O(m*n)D.O(m+n) 3.在头指针为head的非空单循环链表中,指针p指向尾结点,下列关系成立的是() A.p->next==headB.p->next->next==head C.p->next==NULLD.p==head 4.若以S和X分别表示进栈和退栈操作,则对初始状态为空的栈可以进行的栈操作系列是() A.SXSSXXXXB.SXXSXSSX C.SXSXXSSXD.SSSXXSXX 5.两个字符串相等的条件是() A.串的长度相等B.含有相同的字符集 C.都是非空串D.串的长度相等且对应的字符相同 6.如果将矩阵An×n的每一列看成一个子表,整个矩阵看成是一个广义表L,即L=((a11,a21,…,an1),(a12,a22,…,an2),…,(a1n,a2n,…,ann)),并且可以通过求表头head和求表尾tail的运算求取矩阵中的每一个元素,则求得a21的运算是() A.head(tail(head(L)))B.head(head(head(L))) C.tail(head(tail(L)))D.head(head(tail(L))) 7.已知一棵含50个结点的二叉树中只有一个叶子结点,则该树中度为1的结点个数为() A.0B.1 C.48D.49 8.在一个具有n个顶点的有向图中,所有顶点的出度之和为Dout,则所有顶点的入度之和为() A.DoutB.Dout-1 C.Dout+1D.n 9.如图所示的有向无环图可以得到的拓扑序列的个数是() A.3B.4 C.5D.6 10.如图所示的带权无向图的最小生成树的权为() A.51B.52 C.54D.56 11.对长度为n的关键字序列进行堆排序的空间复杂度为() A.O(log2n)B.O (1) C.O(n)D.O(n*log2n) 12.已知用某种排序方法对关键字序列(51,35,93,24,13,68,56,42,77)进行排序时,前两趟排序的结果为 (35,51,24,13,68,56,42,77,93) (35,24,13,51,56,42,68,77,93) 所采用的排序方法是() A.插入排序B.冒泡排序 C.快速排序D.归并排序 13.已知散列表的存储空间为T[0..18],散列函数H(key)=key%17,并用二次探测法处理冲突。 散列表中已插入下列关键字: T[5]=39,T[6]=57和T[7]=7,则下一个关键字23插入的位置是() A.T[2]B.T[4] C.T[8]D.T[10] 14.适宜进行批量处理的文件类型是() A.顺序文件B.索引顺序文件 C.散列文件D.多关键字文件 15.VSAM文件的索引结构为() A.B+树B.二叉排序树 C.B-树D.最优二叉树 二、填空题(本大题共10小题,每小题2分,共20分) 请在每小题的空格中填上正确答案。 错填、不填均无分。 16.如果某算法对于规模为n的问题的时间耗费为T(n)=3n3,在一台计算机上运行时间为t秒,则在另一台运行速度是其64倍的机器上,用同样的时间能解决的问题规模是原问题规模的倍。 17.将两个长度分别为m和n的递增有序单链表,归并成一个按元素递减有序的单链表,可能达到的最好的时间复杂度是。 18.已知循环队列的存储空间大小为m,队头指针front指向队头元素,队尾指针rear指向队尾元素的下一个位置,则在队列不满的情况下,队列的长度是。 19.字符串“sgabacbadfgbacst”中存在有个与字符串“ba”相同的子串。 20.假设以列优先顺序存储二维数组A[5][8],其中元素A[0][0]的存储地址为LOC(a00),且每个元素占4个存储单元,则数组元素A[i][j]的存储地址为。 21.假设用 22.n个顶点且含有环路的无向连通图中,至少含有条边。 23.在一般情况下用直接插入排序、选择排序和冒泡排序的过程中,所需记录交换次数最少的是。 24.和二分查找相比,顺序查找的优点是除了不要求表中数据元素有序之外,对结构也无特殊要求。 25.顺序文件中记录存放的物理顺序和顺序一致。 三、解答题(本大题共4小题,每小题5分,共20分) 26.由森林转换得到的对应二叉树如图所示,写出原森林中第三棵树的前序序列和后序序列。 前序序列: 后序序列: 27.图的邻接表的类型定义如下所示: #defineMaxVertexNum50 typedefstructnode{ intadjvex; structnode*next; }EdgeNode; typedefstruct{ VertexTypevertex; EdgeNode*firstedge; }VertexNode; typedefVertexNodeAdjList[MaxVertexNum]; typedefstruct{ AdjListadjlist; intn,e; }ALGraph; 为便于删除和插入图的顶点的操作,可将邻接表的表头向量定义为链式结构,两种定义的存储表示实例如下图所示,请写出重新定义的类型说明。 28.某类物品的编号由一个大写英文字母及2位数字(0..9)组成,形如E32。 运用基数排序 对下列物品编号序列进行按字典序的排序,写出每一趟(分配和收集)后的结果。 E13,A37,F43,B32,B47,E12,F37,B12 第一趟: 第二趟: 第三趟: 29. (1)画出对表长为13的有序顺序表进行二分查找的判定树; (2)已知关键字序列为(12,14,16,21,24,28,35,43,52,67,71,84,99),写出在该序列中二分查找37时所需进行的比较次数。 (1) (2) 四、算法阅读题(本大题共4小题,每小题5分,共20分) 30.已知线性表的存储结构为顺序表,阅读下列算法,并回答问题: (1)设线性表L=(21,-7,-8,19,0,-11,34,30,-10),写出执行f30(&L)后的L状态; (2)简述算法f30的功能。 voidf30(SeqList*L){ inti,j; for(i=j=0;i if(L->data[i]>=0){ if(i! =j)L->data[j]=L->data[i]; j++; } L->length=j; } (1) (2) 31.阅读下列算法,并回答问题: (1)Q、Q1和Q2都是队列结构,设队列Q=(1,0,-5,2,-4,-6,9),其中1为队头元素,写出执行f31(&Q,&Q1,&Q2)之后队列Q、Q1和Q2的状态; (2)简述算法f31的功能。 (注: lnitQueue、EnQueue、DeQueue和QueueEmpty分别是队列初始化、入列、出队和判队空的操作) voidf31(Queue*Q,Queue*Q1,Queue*Q2){ inte; lnitQueue(Q1); lnitQueue(Q2); while(! QueueEmpty(Q)){ e=DeQueue(Q); if(e>=0)EnQueue(Q1,e); elseEnQueue(Q2,e) } } (1) (2) 32.阅读下列算法,并回答问题: (1)假设串由合法的英文字母和空格组成,并以’\0’作结束符。 设串s=”⊔⊔|⊔am⊔a⊔⊔⊔student”(⊔表示空格符),写出f32(s)的返回值; (2)简述算法f32的功能。 intf32(char*s){ inti,n,inword; n=inword=0; for(i=0;s[i]! =’\0’;i++) if(s[i]! =’⊔’&&inword==0){ inword=1; n++; } elseif(s[i]==’⊔’&&inword==1) inword=0; returnn; } (1) (2) 33.阅读下列对正整数关键字序列L操作的算法,并回答问题: (1)设L=(28,19,27,49,56,12,10,25,20,50),写出f33(L,4)的返回值; (2)简述函数f33的功能。 intPartition(SeqList*L,intlow,inthigh); ∥对L[low..high]做划分,返回基准记录的位置,并使左部的关键字 ∥都小于或等于基准记录的关键字,右部的关键字都大于基准记录的关键字 intf33(SeqListL,intk){ intlow,high,pivotpos; low=1; high=L.length; if(k return-1; do{ pivotpos=Partition(&L,low,high);∥调用快速排序的划分算法 if(pivotpos low=pivotpos+1; elseif(pivotpos>k) high=pivotpos-1; }while(pivotpos! =k); returnL.data[pivotpos]; } (1) (2) 五、算法设计题(本题10分) 34.二叉排序树的类型定义如下: typedefstructBSTNode{∥二叉排序树的结点结构 intdata;∥数据域 structBSTNode*lchild,*rchild;∥左、右孩子指针 }BSTNode,*BSTree; 设计递归算法,统计一棵二叉排序树T中值小于a的结点个数。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 02331 数据结构 历年