序号:1, 题目类型:单选题
题目: 下面关于栈的基本运算算法中,复杂度最高的是()。
选项:
A. 链栈清空运算
B. 顺序栈判空运算
C. 读取栈顶运算
D. 入栈运算
答案:
A. 链栈清空运算
序号:2, 题目类型:单选题
题目: 下列是”abcd321ABCD”的子串的选项是( )。
选项:
A. ”21ABC”
B. ”abcABCD”
C. “abcD”
D. “321a”
答案:
A. ”21ABC”
序号:3, 题目类型:单选题
题目: 设有一个广义表A (a),其表尾为( )。
选项:
A. a
B. (( ))
C. ( )
D. (a)
答案:
B. (( ))
序号:4, 题目类型:单选题
题目: 在非空双向循环链表的*p结点之前插入*q结点的操作是( )。
选项:
A. p->prior=q;q->next=p;p->prior->next=q;q->prior=p->prior;
B. p->prior=q;p->prior->next=q;q->next=p;q->prior=p->prior;
C. q->next=p;q->prior=p->prior;p->prior=q;p->prior->next=q;
D. q->next=p;q->prior=p->prior;p->prior->next=q;p->prior=q;
答案:
序号:5, 题目类型:单选题
题目: 邻接表是图的一种( )。
选项:
A. 顺序存储结构
B. 链式存储结构
C. 索引存储结构
D. 散列存储结构
答案:
序号:6, 题目类型:单选题
题目: 数据的存储结构包括数据元素的表示和( )。
选项:
A. 数据处理的方法
B. 相关算法
C. 数据元素的类型
D. 数据元素间的关系的表示
答案:
序号:7, 题目类型:单选题
题目: 设a,b为一棵二叉树的两个结点,在后续遍历中,a在b前的条件是( )。
选项:
A. a在b上方
B. a在b下方
C. a在b左方
D. a在b右方
答案:
序号:8, 题目类型:单选题
题目: 某串的长度小于一个常数,则采用( )存储方式最节省空间。
选项:
A. 链式
B. 顺序
C. 堆结构
D. 无法确定
答案:
序号:9, 题目类型:单选题
题目: 设有一个长度为n的顺序表,要删除第i个元素,则需移动元素的个数为( )。
选项:
A. i
B. n-i-1
C. n-i
D. n-i+1
答案:
序号:10, 题目类型:单选题
题目: 依次将每两个相邻的有序表合并成一个有序表的排序方法称为( )。
选项:
A. 插入排序
B. 交换排序
C. 选择排序
D. 归并排序
答案:
序号:11, 题目类型:单选题
题目: 在一棵度具有5层的满二叉树中结点总数为( )。
选项:
A. 31
B. 32
C. 33
D. 16
答案:
序号:12, 题目类型:单选题
题目: 队列是一种操作受限的线性表,其限制是( )。
选项:
A. 仅允许在表的一端进行插入和删除操作
B. 仅允许进行插入操作
C. 仅允许进行删除操作
D. 仅允许在表的一端进行插入,而在另一端进行删除操作
答案:
序号:13, 题目类型:单选题
题目: 对线性表进行二分查找时,要求线性表必须( )。
选项:
A. 以顺序存储方式
B. 以链接存储方式
C. 以顺序存储方式 ,且数据元素有序
D. 以链接存储方式,且数据元素有序
答案:
序号:14, 题目类型:单选题
题目: 栈的操作特性决定了它是一种( )的线性表。
选项:
A. 先进先出
B. 先进后出
C. 只进不出
D. 只出不进
答案:
序号:15, 题目类型:单选题
题目: 在一个带头结点的单向链表中,若要在指针q所指结点后插入p指针所指结点,则执行( )。
选项:
A. p->next=q->next; q->next=p;
B. q->next=p->next; p=q;
C. p->next=q->next; p->next=q;
D. q->next=p->next; p->next=q;
答案:
序号:16, 题目类型:判断题
题目: 二叉树中任一结点的值均大于其左孩子的值,小于其右孩子的值,则它是一棵二叉排序树。
选项:
A. √;
B. ×;
答案:
序号:17, 题目类型:判断题
题目: 哈夫曼树只存在着双支结点,不存在单支结点。
选项:
A. √;
B. ×;
答案:
序号:18, 题目类型:判断题
题目: 在线性表的顺序存储中,元素之间的逻辑关系是通过物理存储位置决定的;在线性表的链式存储中,元素之间的逻辑关系是通过链域的指针值决定的。
选项:
A. √;
B. ×;
答案:
序号:19, 题目类型:判断题
题目: 若让元素a,b,c依次进栈,则出栈次序c,a,b是不可能出现的情况。
选项:
A. √;
B. ×;
答案:
序号:20, 题目类型:判断题
题目: 在单链表中,要删除某一指定的结点,必须找到该结点的直接前驱结点。
选项:
A. √;
B. ×;
答案:
序号:21, 题目类型:判断题
题目: 对于一棵深度为h,度为3的树最多有(3h-1)/2个结点。
选项:
A. √;
B. ×;
答案:
序号:22, 题目类型:判断题
题目: 一个空格的串的长度是0。
选项:
A. √;
B. ×;
答案:
序号:23, 题目类型:判断题
题目: 数据项是数据的最小单位。
选项:
A. √;
B. ×;
答案:
序号:24, 题目类型:判断题
题目: 图的深度优先搜索序列和广度优先搜索序列不是惟一的。
选项:
A. √;
B. ×;
答案:
序号:25, 题目类型:判断题
题目: 冒泡排序是一种比较简单的交换排序方法。
选项:
A. √;
B. ×;
答案:
序号:26, 题目类型:判断题
题目: 循环队列是将队列想象成一个首尾相接的圆环。
选项:
A. √;
B. ×;
答案:
序号:27, 题目类型:判断题
题目: 数组通常具有的操作是顺序存取。
选项:
A. √;
B. ×;
答案:
序号:28, 题目类型:判断题
题目: 按照一定规则,在二叉排序树上插入、删除结点,仍能保持二叉排序树的性质。
选项:
A. √;
B. ×;
答案:
序号:29, 题目类型:判断题
题目: 若树中各结点的子树是按照一定的次序从左向右安排的,则称之为有序树。
选项:
A. √;
B. ×;
答案:
序号:30, 题目类型:判断题
题目: 图的最小生成树只有一棵。
选项:
A. √;
B. ×;
答案:
序号:31, 题目类型:单选题
题目: @@@一组记录的关键字序列为(46,79,56,38,40,45,62),利用堆排序(堆顶元素是最小元素)的方法建立的初始堆为( )。
选项:
A. 40, 38, 45, 46, 56, 79,62
B. 38, 40, 45, 79, 46, 56,62
C. 38, 79, 45, 46, 40, 62,56
D. 38, 46, 45, 62,79, 40, 56
答案:
序号:32, 题目类型:单选题
题目: @@@以下为求二叉树深度的算法,完成程序中空格部分。int BTreeDepth(BTreeNode* BT){ if (BT==NULL) return 0; else { int dep1=BTreeDepth(BT->left); /* 计算左子树的深度 */ int dep2=BTreeDepth(BT->right); /* 计算右子树的深度 */ if (________) return dep1+1; else return dep2+!; }}
选项:
A. dep1>dep2
B. dep1<dep2
C. BT->left==NULL
D. BT->right==NULL
答案:
序号:33, 题目类型:单选题
题目: @@@在下面空格处填写一条语句,以使下面的循环队列出队算法完整。ElemType OutQueue(struct SeqQueue *sq){ if (sq->rear==sq->front) { printf(“队列已空,不能进行出队操作!\n”); exit(1); } ________ sq->front=(sq->front+1)%MaxSize; return x;}
选项:
A. x=sq->data[sq->front-1];
B. x=sq->data[sq->front+1];
C. x=sq->data[sq->front];
D. x=sq->data[sq->rear];
答案:
序号:34, 题目类型:单选题
题目: @@@以下函数在a[0]到a[n-1]中,用折半查找算法查找关键字等于k的记录,查找成功返回该记录的下标,失败时返回-1,完成程序中的空格选项。typedef struct{ int key;……}NODE;int Binary_Search(NODE a[ ], int n, int k){ int low, mid, high; low=0; high=n-1; while (________) { mid=(low+high)/2) if (a[mid].key==k) return mid; else if (a[mid].key<k) low=mid+1; else high=mid-1; } return -1}
选项:
A. a[mid].key==k
B. a[mid].key>k
C. a[mid].key<k
D. low<=high
答案:
序号:35, 题目类型:单选题
题目: @@@在下面空格处填写一条语句,以使下面的出栈算法完整。ElemType Pop(struct SeqStack*s,ElemType x){ if (StackEmpty(s)) { printf(“栈下溢错误!\n”); exit(1); } x=s->data[s->top]; ________ return x;}
选项:
A. s->top--;
B. s->top++;
C. s->data--;
D. s->data++;
答案: