出自:河南理工大学数据结构

下面关于B-和B+树的叙述中,不正确的是( )。
A..B-树和B+树都是不平衡的多叉树
B.B-树和B+树都可用于文件的索引结构
C.B-树和B+树都能有效地支持顺序检索
D.B-树和B+树都能有效地支持随机检索
从未排序序列中依次取出元素与已排序序列中的元素进行比较,将其放入已排序序列的正确位置上的方法,这种排序方法称为( )。
A.归并排序
B.冒泡排序
C.插入排序
D.选择排序
下列排序算法中,( )不能保证每趟排序至少能将一个元素放到其最终的位置上。
A.希尔排序
B.快速排序
C.冒泡排序
D.堆排序
数据表中有10000个元素,如果仅要求求出其中最大的10个元素,则采用( )算法最节省时间。
A.冒泡排序
B.快速排序
C.简单选择排序
D.堆排序
下述几种排序方法中,( )是稳定的排序方法。
A.希尔排序
B.快速排序
C.归并排序
D.堆排序
下述几种排序方法中,要求内存最大的是( )。
A.希尔排序
B.快速排序
C.归并排序
D.堆排序
若一组记录的排序码为(46,79,56,38,40,84),则利用堆排序的方法建立的初始堆为( )。
A.79,46,56,38,40,84
B.84,79,56,38,40,46
C.84,79,56,46,40,38
D.84,56,79,40,46,38
堆的形状是一棵( )。
A.二叉排序树
B.满二叉树
C.完全二叉树
D.平衡二叉树
堆是一种( )排序。
A.插入
B.选择
C.交换
D.归并
下列关键字序列中,( )是堆。
A.16,72,31,23,94,53
B.94,23,31,72,16,53
C.16,53,23,94,31,72
D.16,23,53,31,94,72
若一组记录的排序码为(46, 79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为( )。
A.38,40,46,56,79,84
B.40,38,46,79,56,84
C.40,38,46,56,79,84
D.40,38,46,84,56,79
对n个关键字作快速排序,在最坏情况下,算法的时间复杂度是( )。
A.O(n)
B.O(n2)
C.O(nlog2n)
D.O(n3)
快速排序在下列( )情况下最易发挥其长处。
A.被排序的数据中含有多个相同排序码
B.被排序的数据已基本有序
C.被排序的数据完全无序
D.被排序的数据中的最大值和最小值相差悬殊
对n个不同的排序码进行冒泡排序,在元素无序的情况下比较的次数最多为( )。
A.n+1
B.n
C.n-1
D.n(n-1)/2
对n个不同的关键字由小到大进行冒泡排序,在下列( )情况下比较的次数最多。
A.从小到大排列好的
B.从大到小排列好的
C.元素无序
D.元素基本有序
从未排序序列中挑选元素,并将其依次放入已排序序列(初始时为空)的一端的方法,称为( )。
A.归并排序
B.冒泡排序
C.插入排序
D.选择排序
快速排序在最坏情况下的时间复杂度为( )。
A.O(log2n)
B.O(nlog2n)
C.0(n)
D.0(n2)
下列排序方法中,( )是稳定的排序方法。
A..希尔排序
B..冒泡排序
C..快速排序
D.归并排序
试分析下面各程序段的时间复杂度。 (1)x=90; y=100; while(y>0) if(x>100) {x=x-10;y--;} else x++;
试分析下面各程序段的时间复杂度。for (i=0; i
试分析下面各程序段的时间复杂度。s=0; for i=0; i
试分析下面各程序段的时间复杂度。i=1; while(i<=n) i=i*3;
试分析下面各程序段的时间复杂度。x=0; for(i=1; i
试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。
存储结构由哪两种基本的存储方法实现?
为什么计算机内一定要配置端口或接口?
线性表的顺序存储结构比链式存储结构更好。
A.正确
B.错误
数据元素
数据项
数据对象
存储结构
抽象数据类型
“计算机辅助制造”的英文缩写是____。
数据结构是相互之间存在一种或多种特定关系的( )的集合。
下面程序段的时间复杂度是( )。x=0;for(i=1;i<=n;i=2*i) for(j=1;j<=n;j++) x++;
将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。表中不允许有重复的数据。
将两个非递减的有序链表合并为一个非递增的有序链表。要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。表中允许有重复的数据。
已知两个链表A和B分别表示两个集合,其元素递增排列。请设计算法求出A与B的交集,并存放于A链表中。
已知两个链表A和B分别表示两个集合,其元素递增排列。请设计算法求出两个集合A和B 的差集(即仅由在A中出现而不在B中出现的元素所构成的集合),并以同样的形式存储,同时返回该集合的元素个数。
设计算法将一个带头结点的单链表A分解为两个具有相同结构的链表B、C,其中B表的结点为A表中值小于零的结点,而C表的结点为A表中值大于零的结点(链表A中的元素为非零整数,要求B、C表利用A表的结点)。
设计一个算法,通过一趟遍历在单链表中确定值最大的结点。
设计一个算法,通过遍历一趟,将链表中所有结点的链接方向逆转,仍利用原表的存储空间。
设计一个算法,删除递增有序链表中值大于mink且小于maxk的所有元素(mink和maxk是给定的两个参数,其值可以和表中的元素相同,也可以不同 )。
已知p指向双向循环链表中的一个结点,其结点结构为data、prior、next三个域,写出算法change(p),交换p所指向的结点和它的前缀结点的顺序。
已知长度为n的线性表A采用顺序存储结构,请写一时间复杂度为O(n)、空间复杂度为O(1)的算法,该算法删除线性表中所有值为item的数据元素。
下面是删除带头结点的单链表中首元结点的程序片段,L为头指针,则应在空的位置填上   。p=L->next;if(p) { L->next= ; free(p);}
非空的线性结构中,有且仅有一个元素没有直接前驱。
算机安全是指计算机财产的安全。计算机财产包括____和____。
系统软件通常由____、____、____和____等组成。
将编号为0和1的两个栈存放于一个数组空间V[m]中,栈底分别处于数组的两端。当第0号栈的栈顶指针top[0]等于-1时该栈为空,当第1号栈的栈顶指针top[1]等于m时该栈为空。两个栈均从两端向中间增长。试编写双栈初始化,判断栈空、栈满、进栈和出栈等算法的函数。双栈数据结构的定义如下: Typedef struct {int top[2],bot[2]; //栈顶和栈底指针 SElemType *V; //栈数组 int m; //栈最大可容纳元素个数 }DblStack