单选题设有两个串p和q,其中q是p的子串,q在p中首次出现的位置的算法称为( )。
单选题在C语言中,存储字符串“ABCD”需占用( )字节。
单选题串与普通的线性表相比较,它的特殊性体现在( )。
单选题在实际应用中,要输入多个字符串,且长度无法预定。则应该采用( )存储比较合适( )。
单选题串是一种特殊的线性表,其特殊性体现在( )。
单选题串函数StrCmp(“abA”,”aba”)的值为( )。
单选题在C语言中,存储字符串“ABCD”需要占用( )字节。
单选题设主串为“ABcCDABcdEFaBc”,以下模式串能与主串成功匹配的是( )。
单选题字符串 a1=“AEIJING”,a2=“AEI”,a3=“AEFANG”,a4=“AEFI”中最大的是( )。
单选题字符串〝abcd321ABCD〞的子串是( )。
单选题数组a经初始化char a[ ]=“English”;a[1]中存放的是( )。
单选题数据结构中,与所使用的计算机无关的是数据的( )。
答案:数据的逻辑结构和存储结构以及其数据在运算上的实现
单选题在数据结构中,从逻辑上可以把数据结构分成( )。
单选题数据结构是一门研究计算机中( )对象及其关系的科学。
单选题设有如下遗产继承规则:丈夫和妻子可以互相继承遗产,子女可以继承父亲和母亲的遗产,子女间不能相互继承,则表示该遗产继承关系最合适的数据结构应该是( )结构。
判断题数据的逻辑结构是指数据的各数据项之间的逻辑关系( )。
判断题算法的优劣与算法描述语言无关,但与所用计算机有关( )。
判断题算法是在数据结构的基础上对特定问题求解步骤的一种描述,也是若干条指令组成的优先序列()。
判断题算法可以用不同的语言描述,如果用C语言等高级语言来描述,则算法实际上就是程序了( )。
判断题数据的物理结构是指数据在计算机内的实际存储形式( )。
判断题数据结构中评价算法的两个重要指标是时间复杂度和空间复杂度( )。
判断题在顺序存储结构中,有时也存储数据结构中元素之间的关系( )。
单选题线性表的顺序存储比链式存储最与利于进行( )操作。
单选题向一个有127个元素的顺序表中插入一个新元素,并保持原来的顺序不变,平均要移动( )个元素。
单选题在一个长度为n的顺序存储线性表中,向第i个元素(1≤i≤n)之前插入一个新元素时,需要依次后移( )个元素。
单选题在一个长度为n的顺序存储线性表中,删除第i个元素(1≤i≤n),需要前移( )个元素。
单选题一个顺序存储线性表的第一个元素的存储地址是90,每个元素的长度是2,则第6个元素的存储地址是( )。
单选题带头结点的链表为空的判断条件是( )(设头指针为head)。
单选题非空的单向循环链表的尾结点满足( )(设头指针为head,指针p指向尾结点)。
单选题在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用语句( )。
答案:除了一个和最后一个元素外,其余元素都有一个且仅有一个直接前驱和一个直接后继
单选题若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( )存储方式最省时间。
单选题在单链表中,若*p不是尾结点,在其后插入*s结点的操作是( )。
答案:s->next=p->next;p->next=s;
单选题在一个长度为n的顺序表中为了删除第5个元素,由第6个元素开始从后到前依次移动了15个元素。则原顺序表的长度为( )。
单选题对于一个具有n个结点的单向链表,在给定值为x的结点之后插入一个新结点的时间复杂度为( )。
单选题设顺序存储的线性表长度为n,对于插入操作,设插入位置是等概率的,则插入一个元素平均移动元素的次数为( )。
答案:已知单向链表中任一结点的指针就能访问到链表中每个结点
单选题设链表中的结点是NODE类型的结构体变量,且有NODE *p;为了申请一个新结点,并由p指向该结点,可用以下语句( )。
答案:p=(NODE*)malloc(sizeof(NODE));
单选题设head为非空的单向循环链表头指针,p指向链表的尾结点,则满足逻辑表达式( )的值为真。
判断题由于顺序存储要求连续的存储区域,所以在存储管理上不够灵活( )。
判断题线性表中的元素可以是各种各样的,但同一线性表中的数据元具有相同的特性,因此是属于同一数据对象( )。
判断题在线性表的顺序存储结构中,逻辑上相邻的两个元素但是在物理上位置并不一定是相邻的( )。
判断题在单链表中,任何两个元素的存储位置之间都有固定的联系,因为可以从头结点进行查找任何一个元素( )。
判断题线性表的链式存储结构优于顺序存储结构( )。
判断题在线性表的顺序存储结构中,插入和删除元素时,移动元素的个数与该袁术的位置有关( )。
判断题在单链表中,要取得某个元素,只要知道该元素的指针机可,因此单链表是随机存取的存储结构。 ( )
判断题顺序存储方式的有点是存储密度大,且插入、删除运算效率高。( )
单选题一个顺序栈一旦被声明,其占用空间的大小( )。
单选题链栈和顺序栈相比,有一个比较明显的缺点,即( )。
单选题用单链表表示的链式队列的队头在链表的( )位置。
单选题在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印数据缓冲区,主机将要输出的数据依次写入缓冲区中,而打印机则从缓冲区中取出数据打印,该缓冲区应该是一个( )结构。
单选题循环队列A[m] 存放其元素,用front和rear分别表示队头及队尾,则循环队列满的条件是( )。
单选题在一个栈顶指针为top的链栈中,将一个p指针所指的结点入栈,应执行( )。
单选题在一个栈顶指针为top的链栈中删除一个结点时,用 x保存被删结点的值,则执行( )。
答案:x=top->data; top=top->next;
单选题在一个链队中,设front和rear分别为队首和队尾指针,则插入p所指结点时,应执行( )。
单选题在链队列中,f和r分别为队头和队尾指针,要把s所指结点入队,应执行( )。
单选题设top是一个链栈的栈顶指针,栈中每个结点由一个数据域data和指针域next组成,设用x接收栈顶元素,则取栈顶元素的操作为( )。
单选题一个队列的入队序列是2,4,6,8,则队列的输出序列是( )。
单选题一个栈的进栈序列是5,6,7,8,则栈的不可能的出栈序列是( )。(进出栈操作可以交替进行)
答案:逻辑结构与线性表相同,都是操作规则受到限制的线性表
单选题设有一个带头结点的链队列,队列中每个结点由一个数据域data和指针域next组成,front和rear分别为链队列的头指针和尾指针。设p指向要入队的新结点(该结点已被赋值),则入队操作为( )。
单选题设有一个带头结点的链队列,队列中每个结点由一个数据域data和指针域next组成,front和rear分别为链队列的头指针和尾指针,要执行出队操作,用x保存出队元素的值,p为指向结点类型的指针,可执行如下操作:p=front->next;x=p->data;然后指行( )。
答案:顺序队列中,当尾指针已经超越队列存储空间的上界,则一定是队列已满
单选题假定一个链式队列的队头和队尾指针分别为front和rear,则判断队空的条件为( )。
单选题判断一个循环队列Q(最多元素为m)为满的条件是( )。
答案:Q->front==(Q->rear+1)%m
单选题判断栈满(元素个数最多n个)的条件是( )。
单选题一个队列的入队序列是a,b,c,d,按该队列的可能输出序列使各元素依次入栈,该栈的可能输出序列是 ( )。(进栈出栈可以交替进行)。
单选题一维数组A采用顺序存储结构,每个元素占用4个字节,第8个元素的存储地址为120,则该数组的首地址是( )。
单选题在二维数组A[8][10]中,每一个数组元素A[i][j] 占用3个存储空间,所有数组元素相继存放于一个连续的存储空间中,则存放该数组至少需要的存储空间是( )。
单选题设有一个18阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素A10,8在一维数组B中的下标是( )。
单选题设有一个10阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素A8,5在一维数组B中的下标是( )。
单选题设广义表类((a,b,c)),则L的长度和深度分别为( )。
单选题 广义表( a , a ,b , d , e ,( (i ,j ) ,k ) )的表头是________。
单选题广义表的(a,d,e,(i,j),k)表尾是________。
单选题稀疏矩阵的压缩存储方式通常有两种,即( )。
单选题设有一个对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),B数组共有55个元素,则矩阵是( )阶的对称矩阵。
单选题设有一个18阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则数组中第53号元素对应于矩阵中的元素是( )。
单选题对稀疏矩阵进行压缩存储,可采用三元组表,一个10 行8列的稀疏矩阵A共有73个零元素,其相应的三元组表共有( )个元素。
单选题广义表(a,(a,b),d,e,((i,j),k))的长度和深度分别是( )。
单选题假定一棵二叉树中,双分支结点数为15,单分支结点数为30,则叶子结点数为( )。
单选题已知某二叉树的后续遍历序列是dabec,中序遍历是debac,则它的先序遍历序列是( )。
单选题二叉树的深度为k,则二叉树最多有( )个结点。
单选题设某一二叉树先序遍历为abdec,中序遍历为dbeac,则该二叉树后序遍历的顺序是( )。
单选题设某一二叉树中序遍历为badce,后序遍历为bdeca,则该二叉树先序遍历的顺序是( )。
单选题一棵非空的二叉树,先序遍历与后续遍历正好相反,则该二叉树满足( )。
单选题设a,b为一棵二叉树的两个结点,在后续遍历中,a在b前的条件是( )。
单选题权值为{1,2,6,8}的四个结点构成的哈夫曼树的带权路径长度是( )。
单选题如果将给定的一组数据作为叶子数值,所构造出的二叉树的带权路径长度最小,则该树称为( )。
答案:二叉树中度为0的结点的个数等于度为2的结点的个数加1
单选题任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序( )。
单选题一棵有n个结点采用链式存储的二叉树中,共有( )个指针域为空。
单选题设一棵哈夫曼树共有n个非叶结点,则该树有( )个叶结点。
单选题一棵完全二叉树共有5层,且第5层上有六个结点,该树共有( )个结点。
单选题在一棵二叉树中,若编号为i的结点是其双亲结点的右孩子,则双亲结点的顺序编号为( )。
单选题一棵采用链式存储的二叉树中有n个指针域为空,该二叉树共有( )个结点。
单选题一棵 结点数31<n<40的完全二叉树,最后一层有4个结点,则该树有( )个叶结点。
单选题设一棵哈夫曼树共有2n+1个结点,则该树有( )个非叶结点。
单选题 在一棵具有35个结点的完全二叉树中,该树的深度为( )。
单选题在一棵二叉树中,若编号为i的结点存在左孩子,则左孩子结点的顺序编号为( )。
单选题 在一棵具有n个结点的二叉树的第i层上,最多具有( )个结点。
单选题以二叉链表作为二叉树的存储结构,在有n个结点的二叉链表中(n>0),链表中空链域的个数为( )。
单选题将含有150个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,根结点的编号为1,则编号为69的结点的双亲结点的编号为( )。
单选题有n个叶子结点的哈夫曼树的结点总数为( )。
答案:二叉树中,度为0的结点个数等于度为2的结点个数加1
单选题在一个图G中,所有顶点的度数之和等于所有边数之和的( )倍。
单选题如果从无向图的任一顶点出发进行一次深度优先搜索即可访问所有顶点,则该图一定是( )。
单选题图的深度优先遍历算法类似于二叉树的( )遍历。
单选题已知下图所示的一个图,若从顶点V1出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为( )。
单选题已知如图2所示的一个图,若从顶点a出发,按广度优先搜索法进行遍历,则可能得到的一种顶点序列为( )。
单选题已知如图3所示的一个图,若从顶点a出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为( )。
单选题一个具有n个顶点的无向完全图包含( )条边。
单选题已知如图4所示的一个图,若从顶点a出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为( )。
单选题已知如图5所示的一个图,若从顶点a出发,按广度优先搜索法进行遍历,则可能得到的一种顶点序列为( )。
单选题已知如图6所示的一个图,若从顶点V1出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为( )。
单选题已知如图7所示的一个图,若从顶点V1出发,按深广优先搜索法进行遍历,则可能得到的一种顶点序列为( )。
单选题采用邻接表存储的图的广度优先搜索遍历算法类似于二叉树的( )。
单选题在一个具有n个顶点的无向图中,要连通全部顶点至少需要( )边。
单选题采用邻接表存储的图的深度优先搜索遍历算法类似于二叉树的( )。
单选题线性表只有以( )方式存储,才能进行折半查找。
单选题有序表为{2,4,10,13,33,42,46,64,76,79,85,95,120},用折半查找值为85的结点时,经( )次比较后成功查到。
单选题采用顺序查找法对长度为n(n为偶数)的线性表进行查找,采用从前向后的方向查找。在等概率条件下成功查找到前n/2个元素的平均查找长度为( )。
单选题对二叉排序树进行( )遍历,可以使遍历所得到的序列是有序序列。
单选题对线性表进行二分查找时,要求线性表必需( )。
单选题使用折半查找法时,要求查找表中各元素的键值必须是( )排列的。
单选题已知一个有序表为{11,22,33,44,55,66,77,88,99},则顺序查找元素55需要比较( )次。
单选题有一个长度为10的有序表,按折半查找对该表进行查找,在等概率情况下查找成功的平均比较次数为( )。
单选题采用分块查找时,若线性表中共有324个元素,查找每个元素的概率相同,假设采用顺序查找来确定结点所在的块,每块应分( )个结点最佳。
单选题如果要求一个线性表既能较快地查找,又能动态适应变化要求,可以采用( )查找方法。
单选题采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为( )。
答案:把数据分城若干块,块内数据不必有序,但块间必需有序,每块内最大(或最小)的数据组成索引表
单选题假设在有序线性表A[1..20]上进行折半查找,则比较五次查找成功的结点数为( )。
单选题设有1000个无序的元素,希望用最快的速度挑选出其中前10个最大的元素,最好选用()排序法。
单选题对数据元素序列(49,72,68,13,38,50,97,27)进行排序,前三趟排序结果时的结果依次为第一趟:49,72,68,13,38,50,97,27;第二趟:49,68,72,13,38,50,97,27;第三趟:13,49,68,72,38,50,97,27。该排序采用的方法是( )。
单选题一组记录的关键字序列为(47,80,57,39,41,46),利用堆排序(堆顶元素是最小元素)的方法建立的初始化堆为( )。
单选题一组记录的关键字序列为(37,70,47,29,31,85),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为( )。
单选题下述几种排序方法中,要求内存量最大的是( )。
单选题若待排序序列在排序前已按关键字递增排列,则采用( )方法比较次数最多。
单选题将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是( )。
单选题就排序算法所用的辅助空间而言,堆排序、快速排序、归并排序的关系是( )。
单选题一组记录的关键字序列为(25,50,15,35,80,85,20,40,36,70),其中含有5个长度为2的有序表,按归并排序的方法对该序列进行一趟归并后的结果为( )。
答案:(15,25,35,50,20,40,80,85,36,70)
单选题对n个元素进行冒泡排序,通常要进行n-1趟冒泡,在第j趟冒泡中共要进行( )次元素间的比较。
单选题排序方法中,从未排序序列中依次取出元素与已排序序列(初始为空)中的元素进行比较(要求比较次数尽量少),然后将其放入已排序序列的正确位置的方法,是( )排序。
单选题用某种排序方法对线性表(25,84,21,47,15,27,68,35,20)进行排序时,元素序列的变化情况如下: (1)25,84,21,47,15,27,68,35,20 (2)20,15,21,25,47,27,68,35,84 (3)15,20,21,25,35,27,47,68,84 (4)15,20,21,25,27,35,47,68,84 则采用的排序方法是( )。
单选题一组记录的关键字序列为(36,69,46,28,30,84),利用快速排序,以第一个关键字为分割元素,经一次划分后结果为( )。
单选题设已有m个元素有序,在未排好序的序列中挑选第m+1个元素,并且只经过一次元素间的交换,就使第m+1个元素排序到位,该方法是( )。
单选题一组记录的关键字序列为(46,79,56,38,40,45),利用堆排序(堆顶元素是最小元素)的方法建立的初始堆为( )。
答案:38, 40, 45, 79, 46, 56
单选题已知10个数据元素为(54,28,16,34,73,62,95,60,26,43),对该数列从小到大排序,经过一趟冒泡排序后的序列为( )。
答案:28,16,34,54,62,73,60,26,43,95
单选题对具有n个元素的任意序列采用插入排序法进行排序,排序趟数为( )。
判断题数据的逻辑结构在计算机中的表示称为逻辑结构。
判断题数据的逻辑结构是与存储该结构的计算机相关的。
判断题数据结构中,元素之间存在多对多的关系称为树状结构。
判断题通常可以把一本含有不同章节的书的目录结构抽象成线性结构。
判断题通常可以把某城市中各公交站点间的线路图抽象成树型结构。
判断题 设有一个不带头结点的单向循环链表,结点的指针域为next,指针p指向尾结点,现要使p指向第一个结点,可用语句p=p->next;。
判断题 设有一个单向链表,结点的指针域为next,头指针为head,p指向尾结点,为了使该单向链表改为单向循环链表,可用语句p->next=head 。
判断题 设有一个单向循环链表,结点的指针域为next,头指针为head,指针p指向表中某结点,若逻辑表达式p->next==head;的结果为真,则p所指结点为尾结点。
判断题 要在一个单向链表中p所指向的结点之后插入一个s所指向的新结点,若链表中结点的指针域为next,可执行 p->next=s; s->next= p->next;的操作。
判断题 要在一个单向链表中删除p所指向的结点,已知q指向p所指结点的直接前驱结点,若链表中结点的指针域为next,则可执行q->next= p->next;
判断题 要在一个带头结点的单向循环链表中删除头结点,得到一个新的不带头结点的单向循环链表,若结点的指针域为next,头指针为head,尾指针为p,则可执行head=head-> next; p->next=head;。
判断题 设有一个单向循环链表,头指针为head,链表中结点的指针域为next,p指向尾结点的直接前驱结点,若要删除尾结点,得到一个新的单向循环链表,可执行操作p->next=head;。
单选题把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为( )。
单选题在线性表的顺序结构中,以下说法正确的是( )。
单选题设有一个长度为n的顺序表,要在第i个元素之前(也就是插入元素作为新表的第i个元素),插入一个元素,则移动元素个数为( )。
单选题设有一个长度为n的顺序表,要删除第i个元素移动元素的个数为( )。
单选题在一个单链表中p所指结点之后插入一个s所指的结点时,可执行( )。
答案:s->next=p->next; p->next=s;
单选题非空的单向循环链表的尾结点满足( )(设头指针为head,指针p指向尾结点)。
单选题带头结点的链表为空的判断条件是( )(设头指针为head)。
单选题向一个有127个元素的顺序表中插入一个新元素,并保持原来的顺序不变,平均要移动( )个元素。
单选题一个顺序表第一个元素的存储地址是90,每个元素的长度为2,则第6个元素的地址是( )。
单选题 在一个不带头结点的单循环链表中,p、q分别指向表中第一个结点和尾结点,现要删除第一个结点,且p、q仍然分别指向新表中第一个结点和尾结点。可用的语句是p=p->next;和( )。
判断题 设有一个链栈,栈顶指针为hs,现有一个s所指向的结点要入栈,则可执行操作。hs=s; s-> next=hs;
判断题 设有一个非空的链栈,栈顶指针为hs,要进行出栈操作,用x保存出栈结点的值,栈 结点的指针域为next,则可执行hs=hs->next ;x=hs->data;
判断题 有一个链栈,栈顶指针为h,现有一个p所指向的结点要入栈,则可执行操作p->next=h; 和h=p;
判断题 设有一个非空的链栈,栈顶指针为hs,要进行出栈操作,用x保存出栈结点的值,栈结点的指针域为next,数据域为data,则可执行hs= hs->next; x= hs->data;
判断题 在一个链队中,f和r分别为队头和队尾指针,队结点的指针域为next,则插入所指结点的操作为r->next=s;r=s;
判断题 在一个链队中,f和r分别为队头和队尾指针,队结点的指针域为next,s指向一个要入 队的结点,则入队操作为r=s;r->next=s;
判断题 在一个不带头结点的非空链队中,f和r分别为队头和队尾指针,队结点的数据域为data,指针域为next,若要进行出队操作,并用变量x存放出队元素的数据值,则相关操作为x=f->data; f=f->next;
判断题对稀疏矩阵进行压缩存储,可采用三元组表,一个6行7列的稀疏矩阵A相应的三元组表共有8个元素,则矩阵A共有34个零元素。
判断题 循环队列的最大存储空间为MaxSize,队头指针为f,队尾指针为r,当(r+1)%MaxSize=f 时表明队列已满。
判断题循环队列的队头指针为f,队尾指针为r,当r= =f时表明队列已满。
判断题空串的长度是0;空格串的长度是空格字符的个数。
判断题 对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的行下标、列下标、和非零元素值三项信息。
判断题 设有n阶对称矩阵A,用一维数组s压缩存储A的下三角元素,s的下标从零开始,元素 s[26]相应于A中的元素为a 7,5。
判断题 循环队列的最大存储空间为MaxSize=6,采用少用一个元素空间以有效的判断栈空或栈满,若队头指针front=4,当队尾指针rear=3时队满。
判断题 循环队列的最大存储空间为MaxSize=6,采用少用一个元素空间以有效的判断栈空或栈满,若队头指针front=4,队尾指针rear=3时,队列中共有5个元素。
单选题若让元素1,2,3依次进栈,则出栈顺序不可能为( )。
单选题一个队列的入队序列是1,2,3,4。则队列的输出序列是( )。
单选题在一个栈顶指针为top的链栈中,将一个p指针所指的结点入栈,应执行( )。
单选题在一个栈顶指针为top的链栈中删除一个结点时,用 x保存被删结点的值,则执行( )。
答案:x=top->data;top=top->next;
单选题判断一个顺序队列(最多元素为m)为空的条件是( )。
答案:(rear+1)%MaxSize==front
单选题判断栈满(元素个数最多n个)的条件是( )。
单选题设有一个20阶的对称矩阵A(第一个元素为a1,1),采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始), 则矩阵元素a6,2在一维数组B中的下标是( )。
单选题在一个链队中,假设f和r分别为队头和队尾指针,则删除一个结点的运算为( )。
单选题在一个链队中,假设f和r分别为队头和队尾指针,则插入s所指结点的运算为( )。
单选题数组a经初始化char a[ ]=“English”;a[7]中存放的是( )。
单选题设主串为“ABcCDABcdEFaBc”,以下模式串能与主串成功匹配的是( )。
单选题字符串 a1=”AEIJING”,a2=”AEI”,a3=”AEFANG”,a4=”AEFI”中最大的是( )。
单选题一维数组A采用顺序存储结构,每个元素占用6个字节,第6个元素的存储地址为100,则该数组的首地址是( )。
单选题对稀疏矩阵进行压缩存储,可采用三元组表,一个10 行8列的稀疏矩阵A,其相应的三元组表共有6个元素,矩阵A共有( )个零元素。
单选题对稀疏矩阵进行压缩存储,可采用三元组表,一个10 行8列的稀疏矩阵A共有73个零元素,A的右下角元素为6,其相应的三元组表中的第7个元素是( )。
单选题对一个栈顶指针为top的链栈进行入栈操作,通过指针变量p生成入栈结点,并给该 结点赋值a,则执行: p=(struct node *)malloc(sizeof(struct node);p->data=a;和( )。
单选题头指针为head的带头结点的单向链表为空的判定条件是( )为真。
单选题设有一个对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),B数组共有55个元素,则该矩阵是( )阶的对称矩阵。
单选题数组a经初始化char a[ ]=“English”;a[1]中存放的是( )。
单选题假定一棵二叉树中,双分支结点数为15,单分支结点数为30,则叶子结点数为( )。
单选题设一棵采用链式存储的二叉树,除叶结点外每个结点度数都为2,该树结点中共有20个指针域为空,则该树有( )个叶结点。
单选题如果将给定的一组数据作为叶子数值,所构造出的二叉树的带权路径长度最小,则该树称为( )。
单选题已知如下图所示的一个图,若从顶点a出发,按广度优先搜索法进行遍历,则可能得到的一种顶点序列为( )。
单选题在一棵度具有5层的满二叉树中结点总数为( )。
单选题一棵完全二叉树共有6层,且第6层上有6个结点,该树共有( )个结点。
单选题利用3、6、8、12这四个值作为叶子结点的权,生成一棵哈夫曼树,该树中所有叶子结点中的最长带权路径长度为( )。
单选题图状结构中数据元素的位置之间存在( )的关系。
单选题在一个图G中,所有顶点的度数之和等于所有边数之和的( )倍。
单选题在一棵二叉树中,若编号为i的结点存在右孩子,则右孩子的顺序编号为( )。
单选题图的深度优先遍历算法类似于二叉树的( )遍历。
单选题已知下图所示的一个图,若从顶点V1出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为( )。
判断题一棵二叉树的叶结点(终端结点)数为5,单分支结点数为2,该树共有11个结点。
判断题一棵有14个结点的完全二叉树,则它的最高层上有7个结点。
判断题一棵二叉树有6个叶结点,则该树总共有11个结点。
判断题根据搜索方法的不同,图的遍历有.先序;中序;后序三种方法。
判断题对于一棵具有n个结点的二叉树,其相应的链式存储结构中共有n-1个指针域空。
判断题 设一棵完全二叉树,其最高层上最右边的叶结点的编号为奇数,该叶结点的双亲结点的编号为10,该完全二叉树一共有21个结点。
判断题 设一棵完全二叉树,其最高层上最右边的叶结点的编号为偶数,该叶结点的双亲结点的编号为9,该完全二叉树一共有19个结点。
判断题按照二叉树的递归定义,对二叉树遍历的常用算法有深度优先遍历和深度优先遍两种方法。
判断题一棵有8个权重值构造的哈夫曼数,共有17个结点。
判断题一棵有7个叶结点的二叉树,其1度结点数的个数为2,则该树共有15个结点。
单选题一棵具有16个结点的完全二叉树,共有( )层。(设根结点在第一层)
单选题对二叉排序树进行( )遍历,可以使遍历所得到的序列是有序序列。
单选题已知一个图的边数为m,则该图的所有顶点的度数之和为( )。
单选题对线性表进行二分查找时,要求线性表必须( )。
单选题采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为( )。
单选题有一个长度为10的有序表,按折半查找对该表进行查找,在等概率情况下查找成功的平均比较次数为( )。
单选题有数据{53,30,37,12,45,24,96},从空二叉树开始逐个插入数据来形成二叉排序树,若希望高度最小,应该选择的序列是( )。
单选题 对于顺序存储的有序表{5,12,20,26,37,42,46,50,64},若采用折半查找,则查找元素26的比较次数是( )。
单选题在所有的排序方法中,关键字比较的次数与记录初始排列秩序无关的是( )。
单选题从未排序序列中依次取出元素与已经排好序的序列中的元素作比较。将其放入已排序序列的正确的位置上,此方法称为( )。
单选题依次将每两个相邻的有序表合并成一个有序表的排序方法称为( )。
单选题当两个元素出现逆序的时候就交换位置,这种排序方法称为( )。
单选题每次把待排序的区间划分为左、右两个子区间,其中左区间中记录的关键字均小于等于基准记录的关键字,右区间中记录的关键字均大于等于基准记录的关键字,这种排序称为( )。
单选题一组记录的关键字序列为(80,57,41,39,46,47),利用堆排序(堆顶元素是最小元素)的方法建立的初始堆为( )。
单选题 一组记录的关键字序列为(46,20,30,79,56,38,40,84,90,110),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为( )。
答案:40,20,30,38,46,56,79,84,90,110
单选题在有序表{10,14,34,43,47,64,75,80,90}中,用折半查找法查找值80时,经( )次比较后查找成功。
单选题对序列(49,38,65,97,76,13,47,50)采用直接插入排序法进行排序,要把第七个元素47插入到已排序中,为寻找插入的合适位置需要进行( )次元素间的比较。
单选题排序方法中,从未排序序列中挑选元素,并将其依次放入已排序序列(初始为空)的一端的方法,称为( )排序。
单选题一组记录的关键字序列为(26,59,36,18,20,25),利用堆排序的方法建立的初始小根堆为( )。
单选题一组记录的关键字序列为(25,48,16,35,79,82,23,40,36,72),其中,含有5个长度为2的有序表,按归并排序的方法对该序列进行一趟归并后的结果为( )。
答案:16,25,35,48,23,40,79,82,36,72
单选题一组记录的关键字序列为(46,79,56,38,40,84),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为( )。
单选题对一个栈顶指针为top的链栈进行入栈操作,通过指针变量p生成入栈结点,则执行:p=(struct node *)malloc(sizeof(struct node);p->data=a;和( )。
单选题树状结构中数据元素的位置之间存在( )的关系。
单选题设头指针为head的非空的单向链表,指针p指向尾结点,则通过以下操作( )可使其成为单向循环链表。
单选题设有一个长度为26的顺序表,要插入一个元素,并使它成为新表的第6个元素,需移动元素的个数为( )。
单选题头指针为head的带头结点的单向循环链表,p所指向尾结点,要使该链表成为不带头结点的单向循环链表,可执行head=head->nex;和( )。
单选题把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为( )。
单选题元素111,113,115,117按顺序依次进栈,则该栈的不可能输出序列是( )(进栈出栈可以交替进行)。
单选题图状结构中数据元素的位置之间存在( )的关系。
单选题一个单链表中,在p所指结点之后插入一个s所指的结点时,可执行:s->next=p->next;和( )。
单选题设有一个20阶的对称矩阵A(第一个元素为a1,1),采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵元素a6,2在一维数组B中的下标是( )。
单选题元素12,14,16,18顺序依次进栈,则该栈的不可能输出序列是( )。(进栈出栈可以交替进行)。
单选题设有串p1=”ABADF”,P2=”ABAFD”,P3=”ABADFA”,P4=”ABAF”,以下四个串中最大的是( )。
单选题设有一个30阶的对称矩阵A(第一个元素为a1,1),采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a9,2在一维数组B中的下标是( )。
单选题数组a经初始化char a[ ]=“English”;a[7]中存放的是( )。
单选题设有一个长度为32的顺序表,要删除第8个元素需移动元素的个数为( )。
单选题设主串为“ABcCDABcdEFaBc”,以下模式串能与主串成功匹配的是( )。
单选题在一棵二叉树中,若编号为i的结点存在右孩子,则右孩子的顺序编号为( )。
单选题在一棵二叉树中,若编号为i的结点存在左孩子,则左孩子的顺序编号为( )。
单选题一棵具有16个结点的完全二叉树,共有( )层。(设根结点在第一层)
单选题如下图所示,若从顶点a出发,按图的广度优先搜索法进行遍历,则可能得到的一种顶点序列为( )。
单选题如下图所示,若从顶点a出发,按图的深度优先搜索法进行遍历,则可能得到的一种顶点序列为( )。
单选题字符串“DABcdabcd321ABC”的子串是( )。
单选题一棵具有38个结点的完全二叉树,最后一层有( )个结点。
单选题如下图所示,若从顶点a出发,按广度优先搜索法进行遍历,则可能得到的一种顶点序列为( )。
单选题设有头指针为head的不带头结点的非空的单向循环链表,指针p指向其尾结点,要删除第一个结点,则可利用下述语句 head=head->next;和( )。
单选题设有一个长度为18的顺序表,要删除第7个元素需移动元素的个数为( )。
单选题把数据存储到计算机中,并具体体现( )称为物理结构。
单选题设某链表中最常用的操作是在链表的尾部插入或删除元素,在已知尾指针的条件下,选用下列( )存储方式最节省运算时间。
单选题元素13,15,19,20顺序依次进栈,则该栈的不可能输出序列是( )。(进栈出栈可以交替进行)
单选题元素20,14,16,18按顺序依次进栈,则该栈的不可能输出序列是( )。(进栈出栈可以交替进行)
单选题设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,则在表中删除结点B的操作为( )。
单选题设有一个12阶的对称矩阵A(左上角第一个元素为a1,1),采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a5,4在一维数组B中的下标是( )。
单选题设有一个长度为22的顺序表,要删除第8个元素需移动元素的个数为( )。
单选题用链接方式存储的队列,在进行插入运算时( )。
单选题在一棵二叉树中,若编号为5的结点存在右孩子,则右孩子的顺序编号为( )。
单选题字符串 a1=”AEIJING”,a2=”AEI”,a3=”AEFANG”,a4=”AEFI”中最大的是( )。
单选题一棵具有5层的完全二叉树,最后一层有4个结点,则该树总共有( )个结点。
单选题设有一个20阶的对称矩阵A(第一个元素为a1,1),采用压缩存储的方式,将其 下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a6,2在一维数组B中的下标是( )。
单选题如下图所示,若从顶点a出发,按图的广度优先搜索法进行遍历,则可能得到的一种顶点序列为( )。
答案:二叉树中任意一个非叶结点的值都大于其左子树上所有结点的值,小于其右子树上所有结点的值,则该树为二叉排序树。
单选题字符串”abcd321ABCD”的子串是( )。
单选题数组a经初始化char a[ ]=“English”;a[1]中存放的是( )。
单选题如下图所示,若从顶点6出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为( )。
单选题如下图所示,若从顶点a出发,按图的深度优先搜索法进行遍历,则可能得到的一种顶点序列为( )。
填空题对稀疏矩阵进行压缩存储,可采用三元组表,一个有10行的稀疏矩阵A共有97个零元素,其相应的三元组表共有3个元素。该矩阵A有1 列。
填空题结构中的数据元素存在多对多的关系称为1 结构。
填空题在单向链表中,q指向p所指结点的直接后继结点,要删除q所指结点,可以用操作1 = q->next;。
填空题n个元素进行冒泡法排序,第j趟冒泡要进行1 次元素间的比较。
填空题对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的行下标、列下标和1 三项信息。
填空题待排序的序列为8,3,4,1,2,5,9,采用直接选择排序算法,当进行了两趟选择后,结果序列为1 。
填空题n个元素进行冒泡法排序,通常需要进行1 趟冒泡。
填空题广义表((a,b),d,e((i,j),k))的长度是1 。
填空题广义表的(c,a,(a,b),d,e,((i,j),k))深度是1 。
填空题广义表(c,a,(a,b),d,e,((i,j),k))的长度是1 。
填空题对稀疏矩阵进行压缩存储,可采用三元组表,一个有10 行10列的稀疏矩阵A共有95个零元素,其相应的三元组表共有1 个元素。
填空题在对一组记录(50,49,97,22,16,73,65,47,88)进行直接插入排序时,当把第7个记录65 插入到有序表时,为寻找插入位置需比较1 次。
填空题循环队列在规定少用一个存储空间的情况下,队空的判定条件为1 。
填空题一棵有5个叶结点的哈夫曼树,该树中总共有1 个结点。
填空题设有一棵深度为4的完全二叉树,第四层上有5个结点,该树共有1 个结点。(根所在结点为第1层)。
填空题一棵二叉树中有n个非叶结点,每一个非叶结点的度数都为2,则该树共有1 个叶结点。
填空题设有一个长度为40的顺序表,要删除第8个元素需移动元素的个数为1 。
填空题在对一组记录(55,39,97,22,16,73,65,47,88)进行直接插入排序时,当把第7个记录65插入到有序表时,为寻找插入位置需比较1 次。
填空题有以下程序段: char a[ ]=“English”; char *p=a; int n=0; while( *p!=‘\0’){ n++; p++;} 结果中,n的值是1 。
填空题设:char a[ ]=”AEIJING”;该字符串在计算机中存储时占1 个字节。
填空题栈的特点之一是:元素进、出栈的次序是:先进1 。
填空题对稀疏矩阵进行压缩存储,可采用三元组表,一个有8行的稀疏矩阵A共有92个零元素,其相应的三元组表共有4个元素。该矩阵A有1 列。
填空题在对10个记录的序列(9,35,19,77,2,10,53,45,27,68)进行直接插入排序时,当把第6个记录10 插入到有序表时,为寻找插入位置,元素间需比较1 次。(按升序排序)
填空题循环链队列中,设front和rear分别为队头和队尾指针,最大存储空间元素为MaxSize,采用少用一个存储空间的模式,则判断循环链队列为空的条件是1 为真。
填空题字符串a1=”beijing”,a2 =”bef”,a3=”beifang”,a4=”befi”最小的是1 。
填空题10个元素进行冒泡法排序,其中第5趟冒泡共需要进行1 次元素间的比较。
填空题设有一棵深度为4的完全二叉树,第四层上有5个结点,该树共有1 个结点。(根所在结点为第1层)
填空题广义表(c,(a,b,c),(d,e,f),((i,j),k))的长度是1 。
填空题待排序的序列为9,4,5,1,2,6,10,采用直接选择排序算法,当进行了两趟选择后,结果序列为1 。
填空题广义表的(c,(b,a,b),f,e,((i,j),k))深度是1 。
填空题广义表((a,b),d,e,((i,j),k))的长度是1 。
填空题序列4,2,5,3,8,6,采用冒泡排序算法(升序),经一趟冒泡后,结果序列是1 。
填空题广义表的(c,a,(a,b),d,e,((i,j),k))深度是1 。
填空题线性表用1 方式存储需要占用连续的存储空间。
填空题线性表用关键字1 的顺序方式存储,可以用二分法排序。
填空题顺序表6,5,1,2,4,3,8,7经过一趟(1,1)归并后的结果序列为1 。
答案:[(5,6),(1,2),(3,4),(7,8)]
填空题对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的三项信息是1 。
填空题以下是中序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域data为字符型,BT指向根结点)。 void Inorder(struct BTreeNode *BT) { if(BT!=NULL) 1 ; 2 ; Inorder(BT->right); } 利用上述程序对下图进行遍历,结果是3 。
答案:[Inorder(BT->left), printf(\%c\,BT->data), d b f e a c]
填空题设线性表为(16,20,26,24),以不带头结点的单向链表存储,链表头指针为head,以下程序的功能是输出链表中各结点中的数据域data。 struct node { int data; struct node *next; }; typedef struct node NODE; #define NULL 0 void main() { NODE *head,*p; p=head; /*p为工作指针*/ do { printf(“%d\n”,1 ); 2 ; }while(3 ); }
答案:[p->data, p=p->next, p!=NULL]
填空题以下冒泡法程序对存放在a[1],a[2],……,a[n]中的序列进行排序,完成程序中的空格部分,其中n是元素个数,要求按升序排列。 void bsort (NODE a[ ],int n) { NODE temp; int i,j,flag; for(j=1;1 ;j++) { flag=0; for(i=1;2 ;i++) if(a[i].key>a[i+1].key) { flag=1; temp=a[i]; 3 ; 4 ; } if(flag==0)break; } } 设有序列6,4,5,8,2,1,给出由该程序经过两趟冒泡后的结果序列5 。
答案:[j<=n-1), i<=n-j), a[i]=a[i+1]), a[i+1]=temp, 4,5,2,1,6,8]
填空题以下函数为直接选择排序算法,对a[1],a[2],……,a[n]中的记录进行直接选择排序,完成程序中的空格: typedef struct { int key; …… }NODE; void selsort(NODE a[ ],int n) { int i,j,k; NODE temp; for(i=1;i<=1 ;i++) { k=i; for(j=i+1;j<=2 ;j++) if(a[j].key<a[k].key)3 ; if(i!=k) { temp=a[i]; 4 ; 5 ; } } }
答案:[n-1, n, k=j, a[i]=a[k], a[k]=temp]
填空题设线性表为(1,3,7,5),以下程序用说明结构变量的方法建立单向链表,并输出链表中各结点中的数据。 struct node { int data; struct node *next; } typedef struct node NODE; #define NULL 0 void main() { NODE a,b,c,d,*head,*p; a.data=6; b.data=10; c.data=16; c.data=4; /*d是尾结点*/ head=1 ; a.next=&b; b.next=&c; c.next=&d; 2 ; /*以上结束建表过程*/ p=head; /*p为工作指针,准备输出链表*/ do { printf(“%d\n”,3 ); 4 ; }while(p!=NULL); } 画出按该程序建立的单向链表的示意图,说明程序运行结束后p的指向。5
答案:[&a, d->next=NULL, p->data, p=p->next, P指向NULL]
填空题以下函数在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(1 ) { mid=(low+high)/2; if(a[mid].key==k) return 2 ; else if(3 ) low=mid+1; else 4 ; } return -1; }
设数组元素:a[0]=2;a[1]=5;a[2]=3;a[3]=4;a[4]=9;a[5]=6;a[6]=1;a[7]=10;按上述程序查找元素5,能否成功查到,说明理由5 。
答案:[low<=high, mid, a[mid].key<k, high=mid-1, 不能]
填空题以下程序是后序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域data为字符型,BT指向根结点)。 void Inorder(struct BTreeNode *BT) { if(BT!=NULL) { 1 ; Inorder(BT->right); 2 ; } } 利用上述程序对下图进行遍历,结果是3 。
答案:[Inorder(BT->left), printf(\%c\,BT->data), f,d,e,b,c,a]
填空题以下函数为链队列的入队操作,x为要入队的结点的数据域的值,front、rear分别是链队列的队头、队尾指针 struct node { ElemType data; struct node *next; }; struct node *front,*rear; void InQueue(ElemType x) { struct node *p; p=(struct node*)1 ; p->data=x; p->next=NULL; 2 ; rear=3 ; }
答案:[malloc(sizeof(struct node)), rear->next=p, p]
填空题设有一个头指针为head的不带头结点单向链表,p、q是指向链表中结点类型的指针变量,p指向链表中某结点a(设链表中没有结点的数据域与结点a的数据域相同),写出相关语句:(1)使该单向链表成为单向循环链表;(2)删去a结点 q=p;x=p->data; while(q->next!=NULL)q=q->next; 1 ; q=p;p=p->next; while(p->data!=x) { q=p; 2 ; } 3 ;
答案:[q->next=head, p=p->next, q->next=p->next]