数据结构期末考试试题A卷(完成,不知对不对)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第 1 页,共 11 页
任课教师签名:
命题教师签名: 系主任签名: 主管院长签名:
湛江师范学院2007年-2008学年度第1学期
期末考试试题A 卷
(考试时间:120分钟)
考试科目: 数据结构
请将所有答案填写在答题卡上,交卷时请将所有试卷上交
一、单选题(每小题2分,共40分)
1.下列算法的时间复杂度是( B )。 for ( i=0; i A O(1) B O(n) C O(log 2n) D O(n 2) 2.每一个存储结点不仅含有一个数据元素,还包含一个指针,该存 储方式是( B )存储方式。 A 顺序 B 链式 C 索引 D 散列 3.指针p 指向以L 为头指针的循环链表的首元素的条件是( A )。 A p==L B p->next==L C L->next==p D p->next==NULL 4.4个元素进S 栈的顺序是A 、B 、C 、D ,进行两次Pop(S,x)操作后, 栈顶元素的值是( B )。 A A B B C C D D 5.经过下列栈的运算后GetTop(S)的值是( A )。 InitStack(s); Push(s,a); Push(s,b); Pop(s); A a B b C 1 D 2 6.栈的特点是(B )。 A 先进先出 B 后进先出 C 后进 后出 D 不进不出 7.经过下列运算后GetHead(Q)的值是( A ) InitQueue(Q); EnQueue(Q,a); EnQueue(Q,b); A a B b C 1 D 2 8.一维数组的元素起始地址loc[0]=1000,元素长度为4,则loc[2]为( C )。 A 1000 B 1010 C 1008 D 1020 9.二叉树第i层上最多有( C )个结点。 A 2i B 2i-1 C 2i-1 D i2 10.满二叉树( A )二叉树。 A 一定是完全 B 不一定是完全 C 不是 D 不是完全 11.二叉树按二叉链表存储,每个结点包含三个域(lchild、data、rchild),若p指针指向二叉树的根结点,经过运算while ( p->rchild!=null ) p=p->rchild,则( A )。 A p指向二叉树的最右下方的结点 B p指向二叉树的 最左下方的结点 C p仍指向根结点 D p为null 12.在具有n个结点的完全二叉树中,结点i(2i A 是2i B 不存在 C 是2i+1 D 是2i-1 13.有N个顶点的无向图的邻接矩阵是用( A )数组存储。 A N行N列 B 一维 C 任意行N列 D N行任意列 14.连通分量是( A )的极大连通子图。 A 无向图 B 有向图 C 树 D 图 15.最小生成树的构造可使用(A )算法。 A prim算法 B 卡尔算法 C 迪杰斯特拉算法 D 哈夫曼算法 16.查找表是以(A )为逻辑结构。 A 集合 B 图 C 文件 D 树17.散列查找是由键值( A )确定散列表中的位置,进行存储或查找。 A 的散列函数值 B 本身 C 平方 D 相 反数 18.索引顺序表的特点是顺序表中的数据( D )。 A 有序 B 无序 C 块间有序 D 散列 第2 页,共11 页 第 3 页,共 11 页 19.排序是根据( C )的大小重新安排各元素的顺序。 A 数组 B 关键字 C 元素 D 结点 20.不稳定的排序方法是指在排序中,关键字值相等的不同记录间的前后相 对位置( C )。 A 保持不变 B 保持相反 C 不定 D 无关 二、填空题(每空2分,共20分) 1.已知带表头结点的单链表L ,指针P 指向L 链表中的一个结点(非首结点、 非尾结点),则删除P 结点的直接后继结点的语句序列是 P->next=P->next->next ;删除尾结点的语句序列是 while(p->next->next) p=p->next; p->next=NULL; 。 2.栈S 经过运算InitStack(s); Push(s,a); Pop(s,x)后,x 的值是 a 。 3.队列Q 经过运算InitQueue(q); EnQueue(q,a); OutQueue(Q,x)后, EmptyQueue(q)的值是 TRUE 。 4.根结点的层数为 1 。 5.在树与二叉树之间的转换方法中,树的根变为二叉树的 根 。 6.将下列按关键字的值从小到大的直接选择排序算法补充完整。 Select ( list r, int n ) { for ( i=1; 语句1 i<=n ; i++) { k=i; for ( j=i+1; 语句2 j<=n ; j++) if ( r[k].key > r[j].key) 语句3 k=j; ; if ( i != k ) swap ( r[k] , r[i] ); } } 7.两个不同的元素存入同一个散列表,当这两个元素的散列函数相 同时,称为 冲突 。