中 国 海 洋 大 学 继 续 教 育 学 院 命 题 专 用 纸
试题名称 : 数据结构 学年学期: 2019学年第一学期 站点名称: 专业: 年级: 学 号: 姓 名: 分 数: 一. 选择题(每题2分,共20分) 1. 下面程序段的时间复杂度是( B ) for(i=0;i 2222 10.N个节点的满二叉树有( (n + 1) / 2 )个叶子节点 三. 判断题(每题2分,共30分) 1.(X)设p,q是指针,如果p=q,则*p=*q 2.(√)逻辑结构与数据元素本身的内容和形式无关 4.(x)线性表的逻辑顺序和储存顺序总是一致 5.(x)单循环链表中,只能设头指针 6.(x)在双向链表中,求节点前驱的时间复杂度是O(1) 7.(√)在栈满的情况下。不能进栈操作,否则会产生上溢 8.(x)采用循环链表作为存储结构的队列就是循环队列 9.(x)空串与空格串是相同的 10.(x)数组是一种复杂的数据结构,元素之间关系即不是线性也不是树形 11.(√)稀疏矩阵压缩存储后,必然会失去随即存储功能 12.(x)一个非空广义表表头总是一个原子 13.(√)一棵度为2的有序树与一棵二叉树相同 14.(x)二叉树是度为2的树 15.(x)任何一棵二叉树的叶子节点在先序,中序和后序遍历序列中的相对位置不变 四.简答题(每题15分,共30分) 1.栈的出栈算法 出栈的算法 ElemType SeqStackPop(SeqStack &s) { if(s.top == -1) //出栈的时候必须判断是否栈空 printf(\ ElemType x; x = s.data[s.top]; s.top--; return x; } ////////////////////////////////////// int main() { SeqStack stack; stack = SeqStackInit(); 共 4 页 第 2 页 printf(\请输入进栈的元素:\ ElemType x; while(scanf(\ { SeqStackPush(stack,x); } printf(\出栈的结果:\ while(stack.top != -1) { printf(\ } printf(\ return 0; } 2.队列的入队算法 入队算法 linklist in_queue(linklist rear,datatype x) { s=new lnode; s->data=x; s->next=rear->next; rear->next=s; rear=s; return(rear ); 共 4 页 第 3 页 共 4 页 第 4 页