查看所有试题
- 以链表作为栈的存储结构,出栈操作必须判别栈空的情况。图的Depth-FirstSearch(DFS)遍历思想实际上是二叉树()遍历方法的推广。若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用
- 在单链表中,要访问某个结点,只要知道该结点的地址即可;因此,单链表是一种随机存取结构。n个顶点的完全有向图中含有()。正确#
错误n-1条有向边
n条有向边
n(n-1)/2条有向边
n(n-1)条有向边#
- 栈和队列都是受限的线性结构。下列排序方法中()方法是不稳定的。线性表若采用链式存储结构时,要求内存中可用存储单元的地址()。用链表表示线性表的优点是()。正确#
错误冒泡排序
选择排序
堆排序#
直接插入排
- 在具有n个元素的循环队列中,队满时具有()个元素。下面有向图所示的拓扑排序的结果序列是()。下面关于B树和B+树的叙述中,不正确的结论是()。n-1125634
516234#
123456
521643B树和B+树都能有效的支持顺序查找
- 设循环队列的容量为70,现经过一系列的入队和出队操作后,front为20,rear为11,则队列中元素的个数为()。若在线性表中采用折半查找法查找元素,该线性表应该()。从逻辑上可以把数据结构分为()两大类。在对n个元素
- 元素e1,e2,e5,e6依次通过栈S,一个元素出栈后即进入队列Q,e4,e6,则栈的容量至少应该是()。在n个结点的线性表的数组实现中,且关键字为实数,则在下列排序方法中应选()排序为宜。3访问第i(1<=i<=n)个结点和求
- 一个循环队列Q的存储空间大小为M,其队头和队尾指针分别为front和rear,则循环队列中元素的个数为:()。冒泡排序在最坏情况下的比较次数是()下列存储形式中,()不是树的存储形式。空串与空格字符组成的串的区别在
- 依次在初始为空的队列中插入元素a,38,84),46,38,56,46#
84,38
84,79,38要排序的数据量太大
要排序的数据中有多个相同值
要排序的数据已基本有序#
要排序的数据个数为奇数快速排序
shell排序#
堆排序
冒泡排序
- 正常情况下,删除非空的顺序存储结构的堆栈的栈顶元素,栈顶指针top的变化是()。在一个长度为n的顺序表中删除第i个元素,需要向前移动()个元素。top不变
top=0
top=top+1
top=top-1#n-i#
n-i+1
n-i-1
i+1
- 4,则队列的出队序列是()。假设有60行70列的二维数组a[1…60,1…70]以列序为主序顺序存储,其基地址为10000,58]的存储地址为。(无第0行第0列元素)()采用三元组表存储稀疏矩阵,2,2,4,216902#
16904
14454
答案A,B
- front和rear分别为头指针和尾指针,2,S2)表示用字符串S2替换字符串S中的子串S1的操作,则对于S=“Beijing&Nanjing”,S1=“Beijing”,S2=“Shanghai”,REPLACE(S,1
1,2,1first==NULL
first->1ink==NULL#
first->link
- 判定一个顺序栈S(栈空间大小为n)为空的条件是()。根据使用频率为5的字符设计的哈夫曼编码不可能是()N个顶点,001,010,1
B、0000,0001,001,01,1
C、000,100,101
- 五节车厢以编号1,4,2
2,4,1,5,3,5,2,4
- 栈的插入和删除操作在()。依次在初始为空的队列中插入元素a,b,紧接着做了两次删除操作,此时的队头元素是()。设哈希表长m=14,哈希函数H(key)=keyMOD11。表中已有4个结点:addr(15)=4,addr(38)=5,addr(61)
- 将递归算法转换成对应的非递归算法时,通常需要使用()来保存中间结果。栈在()中应用。队列
栈#
链表
树递归调用
子程序调用
表达式求值
A,B,C#
- 表达式a*(b+c)-d的后缀表达式是()。abcd+-
abc+*d-#
abc*+d-
-+*abcd
- 一个顺序栈S,其栈顶指针为top,则将元素e入栈的操作是()。允许对队列进行的操作有()。设有两个串t和p,求p在t中首次出现的位置的运算叫做()。*S->top=e;S->top++;#
S->top++;*S->top=e;
*S->
- 循环队列的队头和队尾指针分别为front和rear,则判断循环队列为空的条件是()。数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素的公
- 队列的插入操作是在()。设广义表L=((a,b,c)),则L的长度和深度分别为()。若串S=‘software’,其子串的数目是()。查找效率最高的二叉排序树是()。队尾#
队头
队列任意位置
队头元素后1和1
1和3
1和2#
2和38
- 若用一个大小为6的数组来实现循环队列,且当rear和front的值分别为0,3。当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为()。正常情况下,栈顶指针top的变化是()。当各边上的权值()时,则运算head
- 一个栈的输入序列为:1,2,3,4,则栈的不可能输出的序列是()。向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动个元素()。在存储数据时,通常不仅要存储各数据元素的值,而且还要存储()。
- 判断一个循环队列Q(最多n个元素)为满的条件是()。一个非空广义表的表头()。Q->rear==Q->front
Q->rear==Q->front+1
Q->front==(Q->rear+1)%n#
Q->front==(Q->rear-1)%n不可能是子
- d,则栈的不可能输出的序列是()。链表不具有的特点是()。解决哈希冲突的主要方法有()。以下哪个数据结构不是多型数据类型()设F是一个森林,则B中右指针域为空的结点有()个。a,c,e
d,b,c,a,d,b
- 写出算法的功能。int L(head){node * head;int n=0;node *p;p=head;while(p!=NULL){ p=p->next; n++; }return(n);}在一个长度为n的顺序表中,在第i个元素之前插入一个新元素时,需向后移动()个元素。求单链表head
- 函数实现单链表的删除算法,请在空格处将算法补充完整。int ListDelete(LinkList L,int i,ElemType *s){LNode *p,*q;int j;p=L;j=0;while(((1) )&&(jnext;j++;}if(p->next==NULLj>i-1) return ERROR;
- 函数ListDelete_sq实现顺序表删除算法,请在空格处将算法补充完整。int ListDelete_sq(Sqlist *L,int i){int k;if(iL->length) return ERROR;for(k=i-1;klength-1;k++) L->slist[k]=(1); (2) ; return OK;}
- 函数实现单链表的插入算法,请在空格处将算法补充完整。int ListInsert(LinkList L,int i,ElemType e){LNode *p,*s;int j;p=L;j=0;while((p!=NULL)&&(jnext;j++;}if(p==NULLj>i-1) return ERROR;s=(LNode
- 链式存储的线性表可以随机存取堆排序是一种()排序。线性表L()情况下适用于使用链式结构实现。正确#
错误插入
选择#
交换
归并需经常修改L的结点值
需不断对L行删除插入#
L含有大量的结点
L结点结构复杂
- 函数GetElem实现返回单链表的第i个元素,请在空格处将算法补充完整。int GetElem(LinkList L,int i,Elemtype *e){LinkList p;int j;p=L->next;j=1;while(p&&ji)return ERROR;*e= (2) ;return OK;}无向图
- 在线性表的顺序存储结构中,逻辑上相邻的两个元素但是在物理位置上不一定是相邻的。若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素算法的时间复杂度()。数据在计算机存储器内表示时,物理地址与逻
- 顺序存储方式只能用于存储线性结构。将一棵有100个结点的完全二叉树从根这一层开始,每一层上从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子编号为()。正确#
错误98#
99
50
48
- 用循环单链表表示的链队列中,可以不设队头指针,仅在队尾设置队尾指针。线性表是具有n个()的有限序列。正确#
错误字符
数据元素#
数据项
表元素
- 在具有头结点的单链表中,头指针指向链表的第一个数据结点。对于一个算法,当输入非法数据时,也要能作出相应的处理,这种要求称为()。已知一个顺序存储的线性表,设每个结点需占m个存储单元,若第一个结点的地址为da1,
- 带头结点的单链表head为空的条件是()。带头结点的单链表head为空的判定条件是()。依次在初始为空的队列中插入元素a,b,c,d以后,紧接着做了两次删除操作,此时的队头元素是()。线性表L在()情况下适用于使用链
- 在一个单链表中删除p所指结点的后继结点时,应执行以下操作:q=p->next;p->next=();冒泡排序在最坏情况下的比较次数是()q->nextn(n+1)/2
nlog2n
n(n-1)/2#
n/2
- 线性表的逻辑结构是(),其所含元素的个数称为线性表的()。下面程序段的时间复杂度为()。i=1;while(i线性结构长度O(n)
O(3n)
O(log3n)#
O(n3)
- 写出带头结点的双向循环链表L为空表的条件()。树是结点的有限集合,它()根结点,记为T。其余结点分成为m(m>=0)个互不相交的集合T1,T2,…,Tm,每个集合又都是树。写出带头结点的双向循环链表L为空表的条件。有0
- 设单链表的结点结构为(data,next)。已知指针p指向单链表中的结点,q指向新结点,欲将q插入到p结点之后,则需要执行的语句:();()。q->next=p->next,p->next=q
- 针为head且表长大于1的单循环链表中,指针p指向表中某个结点,若p->next->next==head,则()。一个顺序表的第一个元素的存储地址是90,每个元素的长度为2,则第6个元素的存储地址是()。有一个100×90的稀疏矩阵,
- 在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入一个结点s,则执行()。稀疏矩阵一般的压缩存储方法有两种,即()。在无向图中定义顶点Vi域Vj之间的路径为从Vi到达Vj的一个()。算法的计算量