序号:1, 题目类型:单选题
题目: 当利用大小为N的数组顺序存储一个栈时,假定用top==N表示栈空,则入栈应该执行()语句修改top指针。
选项:
A. top++
B. top--
C. top=0
D. !top
答案:
B. top--
序号:2, 题目类型:单选题
题目: 串的长度是指( )。
选项:
A. 串中所含不同字母的个数
B. 串中所含字符的个数
C. 串中所含不同字符的个数
D. 串中所含非空格字符的个数
答案:
B. 串中所含字符的个数
序号:3, 题目类型:单选题
题目: 广义表(a,a,b,d,e,((i,j),k))的表头是()。
选项:
A. (a)
B. a
C. a,(a,b)
D. (a,a,b)
答案:
A. (a)
序号:4, 题目类型:单选题
题目: 链表不具有的特点是( )。
选项:
A. 不必事先估计存储空间
B. 可随机访问任一元素
C. 逻辑上相邻的元素在物理位置上不一定相邻
D. 插入删除不需要移动元素
答案:
序号:5, 题目类型:单选题
题目: 对于一个具有n个顶点和e条边的无向图,若采用邻接表表示,则所有顶点邻接表中的结点总数为( )。
选项:
A. n
B. e
C. 2n
D. 2e
答案:
序号:6, 题目类型:单选题
题目: 数据结构中,与所使用的计算机无关的是数据的( )。
选项:
A. 存储结构
B. 物理和存储结构
C. 物理结构
D. 逻辑结构
答案:
序号:7, 题目类型:单选题
题目: 如图所示二叉树的中序遍历序列是( )。 (图片1)
选项:
A. abdgcefh
B. dgbaechf
C. gdbehfca
D. abcdefgh
答案:
序号:8, 题目类型:单选题
题目: 以下四个串中最小的是( )。
选项:
A. ”ABADF”
B. ”ABAFD”
C. ”ABADFA”
D. ”ABAF”
答案:
序号:9, 题目类型:单选题
题目: 在一个长度为n的顺序表中为了删除第5个元素,由第6个元素开始从后到前依次移动了15个元素。则原顺序表的长度为( )。
选项:
A. 19
B. 20
C. 21
D. 25
答案:
序号:10, 题目类型:单选题
题目: 序列状态为( )时,快速排序达到最好的时间复杂度。
选项:
A. 序列基本有序
B. 序列逆序
C. 序列正序
D. 序列无序
答案:
序号:11, 题目类型:单选题
题目: 任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的( )。
选项:
A. 相对次序不改变
B. 相对次序发生改变
C. 一定相邻
D. 相对次序不确定
答案:
序号:12, 题目类型:单选题
题目: 假设链队的队首和队尾指针是F和R,那么队空的条件是()。
选项:
A. F==R
B. F!=NULL
C. R=NULL
D. F!=R
答案:
序号:13, 题目类型:单选题
题目: 对二叉排序树进行( )遍历,可以使遍历所得到的序列是有序序列。
选项:
A. 按层次
B. 后序
C. 中序
D. 前序
答案:
序号:14, 题目类型:单选题
题目: 一般情况下,将递归算法转换成等价的非递归算法应该设置( )。
选项:
A. 栈
B. 队列
C. 堆栈或队列
D. 数组
答案:
序号:15, 题目类型:单选题
题目: ( )有两个指针域,分别指向直接前驱和直接后继,可以实现从前向后和从后向前查找。
选项:
A. 单向链表
B. 队列
C. 单向循环链表
D. 双向循环链表
答案:
序号:16, 题目类型:判断题
题目: 二叉树的根结点值大于其左子树结点的值,小于右子树结点的值,则它是一棵二叉排序树。
选项:
A. √;
B. ×;
答案:
序号:17, 题目类型:判断题
题目: 哈夫曼树只存在着双支结点,不存在单支结点。
选项:
A. √;
B. ×;
答案:
序号:18, 题目类型:判断题
题目: 向一个长度为n的顺序表中的第i个元素(1≤i≤n)之前插入一个元素时,需向后移动n-i个元素。
选项:
A. √;
B. ×;
答案:
序号:19, 题目类型:判断题
题目: 栈是限定在表的两端进行插入和删除操作的线性表,又称为先进先出表。
选项:
A. √;
B. ×;
答案:
序号:20, 题目类型:判断题
题目: 各种链表只需定义有两个域的结点。
选项:
A. √;
B. ×;
答案:
序号:21, 题目类型:判断题
题目: 树的所有结点有且只有一个前驱结点。
选项:
A. √;
B. ×;
答案:
序号:22, 题目类型:判断题
题目: 两个字符串比较时,较长的串比较短的串大
选项:
A. √;
B. ×;
答案:
序号:23, 题目类型:判断题
题目: 健壮的算法不会因非法的输入数据而出现莫名其妙的状态。
选项:
A. √;
B. ×;
答案:
序号:24, 题目类型:判断题
题目: 图的广度优先搜索序列是惟一的。
选项:
A. √;
B. ×;
答案:
序号:25, 题目类型:判断题
题目: 冒泡排序是一种比较简单的插入排序方法。
选项:
A. √;
B. ×;
答案:
序号:26, 题目类型:判断题
题目: 循环队列是将队列想象成一个首尾相接的圆环。
选项:
A. √;
B. ×;
答案:
序号:27, 题目类型:判断题
题目: 一个广义表的表头总是一个广义表。
选项:
A. √;
B. ×;
答案:
序号:28, 题目类型:判断题
题目: 散列技术中的冲突指的是两个元素具有相同的序号。
选项:
A. √;
B. ×;
答案:
序号:29, 题目类型:判断题
题目: 具有10个结点的完全二叉树有5个叶子。
选项:
A. √;
B. ×;
答案:
序号:30, 题目类型:判断题
题目: 设有6个结点的无向图,该图至少应有6条边才能确保是一个连通图。
选项:
A. √;
B. ×;
答案:
序号:31, 题目类型:单选题
题目: @@@一组记录的关键字序列为(6,9,7,4,5,8),利用堆排序(堆顶元素是最小元素)的方法建立初始堆是如下哪个图?( )
选项:
A. (图片1)
B. (图片1)
C. (图片1)
D. (图片1)
答案:
序号:32, 题目类型:单选题
题目: @@@以1,2,3 ,6,7,8作为叶结点的权,构造一棵哈夫曼树是如下哪个图?( )
选项:
A. (图片1)
B. (图片1)
C. (图片1)
D. (图片1)
答案:
序号:33, 题目类型:单选题
题目: 假设队列顺序存储结构为:struct SeqQueue { ElemType data[MaxSize]; int front,rear;};struct SeqQueue *sq;请补充下面出队算法(不考虑空间循环使用)。void OutQueue(struct SeqQueue * sq,ElemtType x){ if( 1 ){ printf(“队列已空,不能出队\n”); exit(1); } 2 return sq->data[sq->front-1];}@@@其中,1和2处应该补充的代码是()
选项:
A. sq->front==sq->rear , sq->front++
B. sq->rear==sq->front , sq->rear++;
C. sq->front=sq->rear , sq->front++
D. sq->rear=sq->front , sq->rear++;
答案:
序号:34, 题目类型:单选题
题目: @@@ 二叉排序树结点类型定义如下:typedef struct Bnode{ int key; struct Bnode *left; struct Bnode *right;} Bnode;以下为二叉排序树的查找算法,完成程序中空格部分。Bnode *BSearch(Bnode *bt,int k){ Bnode *p; if (bt==NULL) return (bt); p=bt; while (________) { if (k<p->key) p=p->left; else p=p->right; if (p==NULL) break; } return (p);}
选项:
A. p->key==k
B. p->key!=k
C. bt==NULL
D. bt!=NULL
答案:
序号: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++;
答案: