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

通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着( )。
A.数据具有同一特点
B.不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致
C.每个数据元素都一样
D.数据元素所包含的数据项的个数要相等
算法的时间复杂度取决于( )
A.问题的规模
B.待处理数据的初态
C.计算机的配置
8254工作在方式1下时,只有在GATE上( ),才可能开始工作
A.为低电平
B.有一正脉冲
C.为高电平
D.有一负脉冲
设数据结构A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>,<4,2>},则该数据结构是( )。
A.线性结构
B.树型结构
C.图型结构
D.集合
以下说法正确的是( )。
A.数据元素是数据的最小单位
B.数据项是数据的基本单位
C.数据结构是带有结构的各数据项的集合
D.一些表面上很不相同的数据可以有相同的逻辑结构
在数据结构中,从逻辑上可以把数据结构分成( )。
A.动态结构和静态结构
B.紧凑结构和非紧凑结构
C.线性结构和非线性结构
D.内部结构和外部结构
与数据元素本身的形式、内容、相对位置、个数无关的是数据的( )。
A.存储结构
B. 存储实现
C.逻辑结构
D. 运算实现
评价算法优劣的基本标准有( )    
A.正确性
B.可读性
C.可用性
D.高效性
在双向循环链表中,在p指针所指的结点后插入q所指向的新结点,其修改指针的操作是( )。
A.p->next=q; q->prior=p; p->next->prior=q; q->next=q;
B.p->next=q; p->next->prior=q; q->prior=p; q->next=p->next;
C.q->prior=p; q->next=p->next; p->next->prior=q; p->next=q;
D.q->prior=p; q->next=p->next; p->next=q; p->next->prior=q;
顺序表中第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( )。
A.110
B.108
C.100
D.120
在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是( )。
A.访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)
B.在第i个结点后插入一个新结点(1≤i≤n)
C.删除第i个结点(1≤i≤n)
D.将n个结点从小到大排序
向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动 的元素个数为( )。
A.8
B.63.5
C.63
D.7
链接存储的存储结构所占存储空间( )。
A.分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针
B.只有一部分,存放结点值
C.只有一部分,存储表示结点间关系的指针
D.分两部分,一部分存放结点值,另一部分存放结点所占单元数
线性表若采用链式存储结构时,要求内存中可用存储单元的地址( )。
A.必须是连续的
B.部分地址必须是连续的
C.一定是不连续的
D.连续或不连续都可以
线性表L在( )情况下适用于使用链式结构实现
A.需经常修改L中的结点值
B.需不断对L进行删除插入
C.L中含有大量的结点
D.L中结点结构复杂
单链表的存储密度( )。
A.大于1
B.等于1
C.小于1
D.不能确定
将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是( )。
A.n
B.2n-1
C.2n
D.n-1
在一个长度为n的顺序表中,在第i个元素(1≤i≤n+1)之前插入一个新元素时须向后移动( )个元素。
A.n-i
B.n-i+1
C.n-i-1
D.I
线性表L=(a1,a2,……an),下列说法正确的是( )。
A.每个元素都有一个直接前驱和一个直接后继
B.线性表中至少有一个元素
C.表中诸元素的排列必须是由小到大或由大到小
D.除第一个和最后一个元素外,其余每个元素都有一个且仅有一个直接前驱和直接后继
创建一个包括n个结点的有序单链表的时间复杂度是( )。
A.O(1)
B.O(n)
C.O(n2)
D.O(nlog2n)
以下说法错误的是( )。
A.求表长、定位这两种运算在采用顺序存储结构时实现的效率不比采用链式存储结构时实现的效率低
B.顺序存储的线性表可以随机存取
C.由于顺序存储要求连续的存储区域,所以在存储管理上不够灵活
D.线性表的链式存储结构优于顺序存储结构
在单链表中,要将s所指结点插入到p所指结点之后,其语句应为( )。
A.s->next=p+1; p->next=s;
B.(*p).next=s; (*s).next=(*p).next;
C.s->next=p->next; p->next=s->next;
D.s->next=p->next; p->next=s;
在双向链表存储结构中,删除p所指的结点时须修改指针( )。
A.p->next->prior=p->prior; p->prior->next=p->next;
B.p->next=p->next->next; p->next->prior=p;
C.p->prior->next=p; p->prior=p->prior->prior;
D.p->prior=p->next->next; p->next=p->prior->prior;
顺序存储的线性表的优点是( )    
A.存储密度大
B.插入方便
C.随机存取
D.删除方便
链式栈结点为:(data,link),top指向栈顶.若想摘除栈顶结点,并将删除结点的值保存到x中,则应执行操作( )。
A.x=top->data;top=top->link;
B.top=top->link;x=top->link
C.x=top;top=top->link;
D.x=top->link
设有一个递归算法如下int fact(int n) { //n大于等于0if(n<=0) return 1;else return n*fact(n-1); }
A.n+1
B. n-1
C. n
D. n+2
为解决计算机主机与打印机间速度不匹配问题,通常设一个打印数据缓冲区。主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是( )。
A.队列
B.栈
C. 线性表
D.有序表
设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5和e6依次进入栈S,一个元素出栈后即进入Q,若6个元素出队的序列是e2、e4、e3、e6、e5和e1,则栈S的容量至少应该是( )。
A.2
B.3
C.4
D.6
设计一个判别表达式中左,右括号是否配对出现的算法,采用( )数据结构最佳。
A.线性表的顺序存储结构
B.队列
C.线性表的链式存储结构
D.栈
用链接方式存储的队列,在进行删除运算时( )。
A.仅修改头指针
B.仅修改尾指针
C. 头、尾指针都要修改
D.头、尾指针可能都要修改
用链接方式存储的队列,在进行删除运算时( )。
A.仅修改头指针
B.仅修改尾指针
C.头、尾指针都要修改
D.头、尾指针可能都要修改
若让元素1,2,3,4,5依次进栈,则出栈次序不可能出现在( )种情况。
A.5,4,3,2,1
B.2,1,5,4,3
C.4,3,1,2,5
D.2,3,5,4,1
若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为( )。
A.i
B.n-i
C.n-i+1
D.不确定
数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素个数的公式为( )。
A.r-f
B.(n+f-r)%n
C.n+r-f
D.(n+r-f)%n
循环队列存储在数组A[0..m]中,则入队时的操作为( )。
A. rear=rear+1
B. rear=(rear+1)%(m-1)
C. rear=(rear+1)%m
D. rear=(rear+1)%(m+1)
最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是( )。
A. (rear+1)%n==front
B. rear==front
C.rear+1==front
D.(rear-l)%n==front
一个递归算法必须包括( )。
A.递归部分
B.终止条件和递归部分
C. 迭代部分
D.终止条件和迭代部分
栈和队列的共同点是( )。
A.都是先进先出
B.都是先进后出
C.只允许在端点处插入和删除元素
D.没有共同点
若一个栈以向量V[1..n]存储,初始栈顶指针top设为n+1,则元素x进栈的正确操作是( )。
A.top++; V[top]=x;
B.V[top]=x; top++;
C.top--; V[top]=x;
D.V[top]=x; top--;
栈在 ( )中有所应用。
A.递归调用
B.函数调用
C.表达式求值
D.打印数据缓冲区
设二维数组A[1.. m,1.. n](即m行n列)按行存储在数组B[1.. m*n]中,则二维数组元素A[i,j]在一维数组B中的下标为( )。
A.(i-1)*n+j
B.(i-1)*n+j-1
C.i*(j-1)
D.j*m+i-1
数组A[0..4,-1..-3,5..7]中含有元素的个数( )。
A.55
B.45
C.36
D.16
广义表A=(a,b,(c,d),(e,(f,g))),则Head(Tail(Head(Tail(Tail(A)))))的值为( )。
A.(g)
B.(d)
C.c
D.d
设广义表L=((a,b,c)),则L的长度和深度分别为( )。
A..1和1
B.1和3
C.1和2
D.2和3
串T=“abcabaa”,其nextval函数值为:( )
A.110132
B.111232
C.1110132
D.1111232
串是一种特殊的线性表,其特殊性体现在( )。
A.可以顺序存储
B.数据元素是一个字符
C.可以链式存储
D.数据元素可以是多个字符若
串“ababaaababaa”的next数组为( )。
A.12345678999
B.12121111212
C.11234223456
D.123012322345
串“ababaabab”的nextval为( )。
A.10104101
B.10102101
C.10100011
D.10101011
串的长度是指( )。
A.串中所含不同字母的个数
B.串中所含字符的个数
C.串中所含不同字符的个数
D.串中所含非空格字符的个数
假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]=( )。
A.808
B.818
C.1010
D.1020