程序设计导引习题2(深入模块)

基础练习【数据结构篇】

数据结构概述

选择题

1、数据结构被形式地定义为(D,R),其中D是_①_的有限集,R是D上的¬_② 有限集。
① A、算法 B、 数据元素 C、数据操作 D、逻辑结构
② A、操作 B、 映像 C、存储 D、关系
2、线性结构的顺序存储结构是一种_______的存储结构,线性表的链式存储结构是一种___的存储结构
A、随机存取 B、 顺序存取 C、索引存取 D、散列存取
3、计算机算法指的是___①____,它必须具备输入、输出和__②__等5个特征。
① A、计算方法 B、排序方法C、解决问题的有限运算序列 D、调度方法
② A、可执行性、可移植性和可扩充性 B、可行性、确定性和有穷性 C、确定性、有穷性和稳定性 D、易读性、稳定性和安全性
4、线性表的逻辑顺序与存储顺序总是一致的,这种说法是_______
A、正确 B、 错误
5、每种数据结构都具有三个基本运算:插入、删除和查找,这种说法_______
A、正确 B、 错误
6、下列算法是时间复杂度是( )
for(i=0;i<n;i++)
for(j=0;j<n;j++)
c[i][j]=i+j;
A、 O(1)B、O(n)C、O(log2n)D、O(n2)
7、算法指的是( )
A、 计算机程序B、解决问题的答案C、排序算法D、解决问题的有限运算序列
8、在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是( )
A、访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)
B、在第i个结点后插入一个新结点(1≤i≤n)
C、删除第i个结点(1≤i≤n)
D、将n个结点从小到大排序
9、算法分析的两个主要方面是( )
A、数据复杂性和程序复杂性 B、可读性和文档性
C、时间复杂度和空间复杂度 D、正确性和简单性
10、下列算法的时间复杂度是( )
i=1;j=0;
while (i+j<=n)
{ if(i>j) j++;
else i++; }
A、O(1)B、 O(n)C、O(log2n) D、O(n2)
11、

填空题

1、 数据的逻辑结构包括____①___、②___和___③____三种结构,树形结构和图形结构合称为_____④__。
2、 在线性结构中,第一个结点__①___前驱结点,其余每个结点有且只有__②__个前驱结点,最后一个结点__③__后继结点,其余每个结点有且只有_④__个后继结点。
3、 在树形结构中,树根结点没有___①___结点,其余每个结点有且仅有_②__个前驱结点;叶子结点没有__③___结点,其余每个结点的后续结点可以___④____。
4、 在图形结构中,每个结点的前驱结点数和后续结点数可以___①____。
5、 线性结构中元素之间存在____①___关系,树形结构中元素之间存在____②__关系,兔形结构中元素之间存在___③___关系。
6、 下面程序段的时间复杂度是________
for ( i =0; i<n ; i++)
for (j=0; j<m ;j++)
A[i][j]=0;
7、数据结构是一门研究非数值计算的程序设计问题中计算机的 以及它们之间的 和运算等的学科。
8、在计算机中存储数据结构时不仅要存储数据元素的值,还要存储数据元素之间的 。
9

参考答案

一、选择题
1、①B ②D 2、 ①A ②B 3、 ①C ②B 4、 B 5、B
二、填空题
1、线性结构、树形结构 、图形结构 、非线性结构 2、没有、1、没有、1
3、前驱、1、后续、任意多个 4、任意多个 5、一对一、一对多、多对多 6、O(m*n)

线性表

单项选择题

  1. 一个向量第一个元素的存储地址是100,每个元素的长度为2,则第五个元素的地址是______
    A、110 B、108 C、100 D、120
  2. 一个栈的入栈序列是a、b、c、d、e,则栈不可能的输出顺序是______
    A、edcba B、decba C、dceab D、abcde
  3. 若已知一个栈的入栈序列是1,2,3,……,n,其输出序列为p1,p2,p3,……pn,若p1=n,则pi=________
    A、i B、n=i C、n-i+1 D、不确定
  4. 判定一个顺序栈ST(当前分配的存储单元个数为M0)为空的条件是:_______
    A、ST.TOP!=0 B、ST.TOP==0 C、ST.TOP!=M0 D、ST.TOP= =ST.BASE
  5. 判定一个顺序栈ST(当前分配的存储单元个数为M0)为满的条件是:_______
    A、ST.TOP!=M0 B、ST.TOP==0 C、ST.BASE!=M0 D、ST.TOP-ST.BASE=M0
  6. 一个队列的入列序列是1,2,3,4,则队列的输出序列是_______
    A、4,3,2,1 B、1,2,3,4 C、1,4,3,2 D、3,2,4,1
  7. 判断一个顺序队列QU(最多的元素个数为m0)为空的条件是______
    A、QU.rear-QU.front= =m0 B、QU.rear-QU.front-1= =m0
    C、QU.front= =QU.rear D、QU.rear+1=QU.front
  8. 判断一个顺序队列QU(最多的元素个数为m0)为满的条件是______
    A、QU.rear-QU.front==m0 B、(QU.rear+1)%m0= =QU.front
    C、QU.front= =QU.rear D、QU.rear+1=QU.front
    9、 循环队列用数组A[0,m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数为_______
    A、(rear-front+m)%m B、rear-front+1 C、rear-front-1 D、rear-front
    10、栈和队列的共同点是_____
    A、都是先进后出 B、都是先进先出
    C、只允许在端点处插入和删除元素 D、没有共同点
    11、表达式a*(b+c)-d的中缀表达式是______
    A、abcd*± B、abc+d- C、abc+d- D、-+*abcd
    12不带头结点的单链表head为空的判定条件是:__________
    A、head= = NULL B、head.next= = NULL
    C、head.next= = head D、head!=NULL
    13带头结点的单链表head为空的判定条件是-__________
    A、head= = NULL B、head.next= = NULL
    C、head.next= = head D、head!=NULL
    14非空的循环单链表head的尾结点(由P所指向)满足_______
    A、p.next= = NULL B、p= = NULL
    C、p.next= = head D、p= =head
    15、从一个具有n个结点的单链表中查找其值等于x的结点时,在查找成功的情况下,需平均比较______个结点。
    A、n B、n/2 C、(n-1)/2 D、(n+1)/2
    16、在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是_____
    A、O(1) B、O(n) C、O(n2) D、O(nlog2n)
    17、线性结构中,只有一个直接前驱和一个直接后继的结点是( )
    A、 第一个结点 B、最后一个结点
    C、中央的结点 D、除第一个和最后一个之外的所有结点
    18、设有一个顺序栈S,元素s1,s2,s3,s4,s5,s6依次入栈,如果这六个元素的出栈顺序是s2,s4,s3,s6,s5,s1,则栈的容量至少应该是( )
    A、3 B、4 C、5 D、6
    19、非空的循环单链表head的尾结点(由p指向)满足( )
    A、p->next= =null B、p= =null
    C、p->next= =head D、p= =head
    20、可以借助数据元素在存储器中的相对位置来表示数据元素之间的逻辑关系的存储表示方法是( )
    A、 顺序存储结构B、 链式存储结构C、 索引存储结构D、散列存储结构
    21、与线性表的链式存储结构相符的特性是( )
    A、可以随机访问 B、不需要另外开辟空间来保存元素间的关系
    C、存储空间静态分配 D、插入和删除操作灵活
    22、 向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动( )个元素。
    A、 8    B、63.5 C、63  D、7
    23、设一个栈的入栈序列是a,b,c,d,e,f,则不可能的出栈序列是( )。
    A、c,b,e,f,d,a B、a,e,d,f,b,c
    C、b,d,c,e,a,f D、d,e,c,f,b,a
    24、线性表采用链式存储结构时,要求内存中可用存储单元的地址( )
    A、必须是连续的 B、部分地址必须是连续的
    C、一定是不连续的 D、连续或不连续都可以

填空题

1、 在一个长度为n的向量中的第 i个元素(1<= i <=n)之前插入一个元素时,需向后移动______个元素。
2、 在一个长度为n的向量中删除第i个元素时,需要向前移动______个元素。
3、 在具有n个单元的循环队列中,队满是共有______个元素。
4、 栈的特点是______,队列的特点是________
5、 在顺序表中插入或删除一个元素,需要平均移动( )个元素,具体移动的元素个数与( )有关。
6、 顺序表中逻辑上相邻的元素的物理位置( )相邻。单链表中逻辑上相邻的元素的物理位置( )相邻。
7、 一个队列的入队序列是1,3,5,7,9,则出队的输出序列只能是
8、 线性表、栈和队列都是 性数据结构;可以在线性表的 位置插入和删除元素;对于栈应在 位置插入和删除元素;对于队列应在 位置插入元素,在 位置删除元素。

参考答案

一、选择题
1、B 2、C 3、C 4、D 5、D 6、B 7、C 8、A 9、A 10、C 11、B
12、A 13、B 14、C 15、D 16、B
二、填空题
1、n-i+1 2、 n-i 3、 n-1 4 、 后进先出、先进先出

链表

选择题

1、 向一个栈顶指针为HS的链栈中插入一个s所指结点时,应执行________
A、HS.next= s B、s.next = HS.next ;HS.next= s
C、s.next=HS;HS=s D、 s.next=HS;HS=HS.next
2从一个栈顶指针为HS的链栈中删除一个结点时,用x保存被删除结点的值,应执行____
A、x=HS;HS=HS.next B、x=HS.data
C、HS=HS.next;x=HS.data D、 x=HS.data;HS=HS.next
3、在一个链队中,假设f和r分别为队首和队尾指针,则插入s所结点的运算是________
A、f.next=s;f=s B、r.next=s;r=s;
C、s.next=r;r=s; D、 s.next=f;f=s;
4、在一个链队中,假设f和r分别为队首和队尾指针,则删除一个结点的运算是________
A、r=f.next B、r=r.next
C、f=f.next D、f=r.next
5、非空的循环单链表head的尾结点(由p所指向)满足___。
A、p->next= =NULL B、p= =NULL C、p->next= =head D、p= =head
6、设一个栈的输入序列为a,b,c,d,则所得出栈的输出序列不可能是( )
A、 a,b,c,d B、 d,a,b,c C、 a,c,d,b D、d,c,b,a
7、判断一个循环队列cq(最多元素为QueueSize)为满队列的条件是( )
A、cq.rear= =cq.front
B、cq.rear= = QueueSize
C、(cq.rear+1)% QueueSize= =cq.front
D、cq.rear% QueueSize+1= =cq.front
8、将长度为n的单链表链接在长度为m的单链表之后的算法的时间复杂度为( )。
A、O(1) B、O(n) C、O(m) D、O(m+n)
9、在带头结点的单链表h中,若要向表头插入一个由指针p所指向的结点,则执行( )
A、 h=p;p-〉next=h; B、 p-〉next=h ;h=p;
C、 p-〉next=h;p=h; D、 p-〉next=h-〉next;h-〉next=p;
10、在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行( )
A、s->next=p;p->next=s; B、 s->next=p->next;p->next=s;
C、s->next=p->next;p=s; D、p->next=s;s->next=p;
11、若循环队列用数组A[m]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是( )。
A、(rear-front+m) mod m B、rear-front+1
C、rear-front-1 D、rear-front
12、若已知一个栈的入栈序列为1,2,3,…,n,其出栈的序列为p1 ,p2 ,p3 ,… ,pn,若p1=n,则pi(1≤i<n)为( )
A) i B) n-i C) n-i+1 D) 不确定
13、循环顺序队列中是否可以插入下一个元素,( )。
A、 与队首指针和队尾指针所在的位置有关
B、 只与队尾指针所在的位置有关
C、 只与数组的大小有关,与队首和队尾指针所在的位置无关
D、 与曾经进行过多少次插入操作有关

填空题

1、在栈顶指针为HS的链栈中,计算该链栈中结点个数的函数是________
2、 对于一个具有n个结点的单链表,在已知p所指结点后插入一个新结点的时间复杂度是_______;在给定值为x的结点后插入一个新结点的时间复杂度为_________
3、 在单链表中,除了第一个元素(首元结点)外,任一结点的存储位置由( )指示。
4、 已知L是无表头结点的单链表,且P结点既不是首元结点,又不是尾元结点,则:
(1)在P结点后插入S结点的语句序列是( );
(2)在P结点前插入S结点的语句序列是( );
(3)在表首插入S结点(S为表中第一个结点)的语句序列是( );
(4)在表尾插入S结点的语句序列是( );
5、 已知L是带表头结点的非空单链表,且P结点既不是首元结点,又不是尾元结点,则:
(1)删除P结点的直接后继结点的语句序列是( );
(2)删除P结点的直接前驱结点的语句序列是( );
(3)删除P结点的语句序列是( );
(4)删除首元结点的语句序列是( );
(5)删除尾元结点的语句序列是( );
6、 在单循环链表中,已知q指向p指向结点的前驱结点,若在q,p所指结点之间插入一个s所指向的新结点,则执行的操作是
7、在一个单链表中删除P所指结点时,可执行以下操作:
q=p->next;
p->data=q->data;

Free(q);
8、在一个链队列Q中,假定Q.front和Q.rear分别为队首和队尾指针,则删除队列中一个结点的操作是 。

参考答案

一、选择题
1、C 2、D 3、B 4、C
二、填空题
1、 int count(node *HS)
{
node *p;
int n=0;
p=HS;
while(p!=NULL)
{
n++;
p=p.next;
}
return n;
}
2、O(1),O(n)

选择题

1、如下陈述中正确的是( )
A、 串是一种特殊的线性表B、 串的长度必须大于0
C、串中元素只能是字母D、空串就是空白串
2、设字符串s1=‘abcdefg’,s2=‘pqrst’,则运算s=strcat(substr(s1,2,length(s2)),substr(s1,length(s2),2))后串值为( )
A、‘bcdefef’B、‘bcpqrst’C、‘bcdefg’D、‘bcdef’
3、以下论述正确的是( )
A、空串和空格串是相同的 B、串中元素只能是26个英文字母
C、空串是零个字符的串 D、空串长度为1
4、设某串长度为n,则它的子串个数是( )
A、 n B、 n(n+1) C、 n(n+1)/2 D、 n(n+1)/2+1
5、设字符串s=‘sciencestudy’,则进行运算scopy(p,substr(s,1,7)后得到( )
A、 p=‘science’ B、p=‘study’ C、s=‘science’ D、 s=‘study’
6、若串s=”software”,则其子串的个数是( )
A、8 B、9 C、36 D、37
7、

填空题

1、串是一种特殊的线性表,其特殊性表现在_____________
2、设有两个串p和q,求q在p中首次出现的位置的运算称作________
3、设串s1=’ABCDEFG’,s2=’PQRST’,函数con(x,y)返回x和y串的连接串,subs(s,i,j)返回串s的从序号 i 的字符开始的j个字符组成的子串,len(s)返回串s的长度,则con(subs(s1,2,len(s2)),subs(s1,len(s2),2))的结果是___________
4、两个串相等的充分必要是_________
5、空串是______________,其长度等于_______
7、 空格串是__________其长度等于_______
8、 设S=“A;/document/Mary.doc”,则strlen(s)= , “/”的字符定位的位序为 。
9、 设目标T=”abccdcdccbaa”,模式P=“cdcc”,则第 次匹配成功。

参考答案

一、选择题
1、
二、填空题
1 数据元素是一个字符 2、模式匹配 3、BCDEFEF 4、两个串的长度相等且对应位置的字符相同 5、零个字符的串,零 6、一个或多个空格组成的串,其包含的空格个数

数组和稀疏矩阵

选择题

1、 递归函数f(n)=f(n-1)+n(n>1)的递归出口是_______
A、f(1)=0 B、f(1)=1 C、f(0)=1 D、f(n)=n
2、 递归函数f(n)=f(n-1)+n(n>1)的递归体是_______
A、f(1)=0 B、f(0)=1 C、f(n)=f(n-1)+n D、f(n)=n
3、 将递归算法转换成对应的非递归算法时,通常需要采用________
A、栈 B、队列 C、链表 D、树
4、二维数组M的元素是4个字符(每个字符占一个存储单元)组成的串,行下标i的范围是从0到7,列下标j的范围从0到9,则存放M需要存储单元数为( )
A、360 B、480 C、240 D、320
5、假设有60行70列的二维数组a[1…60, 1…70]以列序为主序顺序存储,其基地址为10000,每个元素占2个存储单元,那么第32行第58列的元素a[32,58]的存储地址为( )。(无第0行第0列元素)
A、16902 B、16904 C、14454 D、答案A, B, C均不对
6、已知广义表A=((a,b,c),(d,e,f)),则广义表A的表尾是( )
A、(d,e,f) B、((d,e,f))
C、f D、(f)
7、设有一个二维数组A[10][15],数组按行存放,假设A[0][0]存放位置在644,每个元素占一个空间,则A[4][5]在( )位置.
A、 672    B、626 C、709   D、724

填空题

1、已知二维数组A[m][n]采用行序为主方式存储,每个元素占据k个存储单元,并且第一个元素的存储地址是LOC(A[0][0]),则A[i][j]的地址是_________
2、已知二维数组A[10][20]采用列序为主方式存储,每个元素占一个存储单元,并且A[0][0]单元的存储地址是200,则A[6][12]的地址是________
3、二维数组A[10…20][5…10]采用行序为主方式存储,每个元素占四个存储单元,并且A[10][5]的存储地址是1000,则A[18][9]的地址是_______
4、 广义表((a),a)的表头是________,表尾是________.
5、 广义表((a))的表头是_________,表尾是_________
6、 广义表(a,b,c,d)的表头是_________,表尾是__________
7、 广义表(a,(a,b),d,e((i,j),k))的长度是________,深度是_______
8、 三元素组表中的每个结点对应于稀疏矩阵的一个非零元素,它包含有三个数据项,分别表示该元素的 、 和 。
9、 GetHead((a,b),(c,d))=
10、假设有二维数组A6×8,每个元素用相邻的6个字节存储,存储器按字节编址。已知A的起始存储位置(基地址)为1000,则数组A的体积(存储量)为 ;末尾元素A57的第一个字节地址 ;若按行存储时,元素A14的第一个字节地址 ;若按列存储时,元素A47的第一个字节地址为 。
11、GetHead【GetTail【((a,b),(c,d))】】= 。
12、三元组表中的每个结点对应于稀疏矩阵中的一个非零元素,它包含有三个数据项,分别表示该元素的 、 和 。

参考答案

一、 选择题
1、B 2、 C 3、A
二、填空题
1、 LOC(A[0][0])+(n*i + j)k
2、 提示:LOC(A[0][0])+(m
j + i)*k 232
3、 1208
4、 (a),(a)
5、 (a),()
6、 a,(b,c,d)
7、 5,3

树和二叉树

选择题

1、 下面的4个二叉树中,不是完全二叉树
1题图
2、 在线索化的二叉树中,t所指结点没有左子树的充要条件是
____
A、t.left= = NULL B、t.ltag= = 1
C、t.ltag= =1 && t.left= = NULL D、以上都不对
3、 二叉树按某种顺序线索化后,任一结点均有指向其前趋和后继的线索,这种说法______
A、正确 B、错误
4、 二叉树的前序遍历序列中,任意一个结点均在其子女结点的前边,这种说法___________
A、正确 B、错误
5、 如下图所示的二叉树的中序遍历序列是______________
A、abcdgef
B、dfegagc
C、dbaefcg
D、defbage
5题图
6、已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是_____
A、acbed B、decab C、deabc D、cedba
7、如果T2是由有序树T转换而来的二叉树,那么T中结点的前序就是T2中结点的______
A、前序 B、中序 C、后序 D、层次序
8、如果T2是由有序树T转换而来的二叉树,那么T中结点的后序就是T2中结点的______
A、前序 B、中序 C、后序 D、层次序
9、某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访问顺序是dgbaechf,则后序遍历的结点访问顺序是______
A、bdgcefha B、gdbecfha C、bdgaechf D、gdbehfca
10、按照二叉树的定义,有3个结点的二叉树有________中
A、3 B、4 C、5 D、6
11、深度为5的二叉树至多有________个结点。
A、16 B、32 C、31 D、10
12、树最适合用来表示__________
A、有序数据元素 B、无序数据元素
C、元素之间具有分支层次关系的数据 D、元素之间无联系的数据
13、任何一个二叉树的叶结点在先序,中序和后序遍历中的相对次序________
A、不发生改变 B、发生改变 C、不能确定 D、以上都不对
14、对一个满二叉树,m个树叶,n个结点,深度为h,则_________
A、n=h+m B、h+m=2n C、m=h-1 D、n=2h-1
15、设m,n为一棵二叉树上的两个结点,在中序遍历时,n在m之前的条件是_______
A、n在m右方 B、n是m祖先 C、n在m左方 D、n是m子孙
16、某二叉树只有度为0和度为2的结点,其中度为2结点数为8个,则该二叉树共有( )个结点
A、 15 B、 17 C、 16 D、 无法计算
17、某完全二叉树共有68个结点,从树根起,自上层到下层,每层从左到右给每个结点顺序编号,编号为32的结点的左孩子的编号是( )
A、16 B、 64 C、 65 D、 无左孩子
18、若一棵二叉树中只有10个度为2的结点,则该二叉树中度为0的结点个数为( )
A、 9 B、10 C、11 D、不确定
19、将一棵有100个结点的完全二叉树从上到下,从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子编号为( )
A、49 B、50 C、98 D、99
20、若由树转化得到的二叉树是非空的二叉树,则二叉树的形状是( )
A、 根结点无右子树 B、根结点无左子树
C、 根结点只有左子树或只有右子树 D、左、右子树都可能有
21、判断线索二叉树中某结点p有左孩子的条件是( )
A、p! = =null B、p->lchild!= =null
C、p->ltag= =0 D、p->ltag= =1
22、若一棵二叉树中度为2的结点个数为10个,度为1的结点个数为20个,则该二叉树中度为0的结点个数为( )个。
A、 9 B、11 C、19 D、21
23、设二叉树根结点的层次为1,所有含有63个结点的二叉树中,最小高度是(  )。
  A、 8   B 、7   C、6   D、 5
24、将一棵有100个结点的完全二叉树从上到下,从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子编号为( )。
A、49 B、 50 C、98 D、 99
25、设结点x和结点y是二叉树T中的任意两个结点,若在前序序列中x在y之前,而在中序序列中x在y之后,则x和y的关系是(  )。
A、x是y的左兄弟  B、x是y的右兄弟 C、y是x的祖先   D、y是x的孩子
26、某二叉树的中序序列和后序序列相同,则这棵二叉树必然是( )。
A、空树
B、 空树或任一结点都没有左孩子的非空二叉树
C、空树或任一结点都没有右孩子的非空二叉树
D、 空树或仅有一个结点的二叉树
27、一棵完全二叉树中根结点的编号为1,而且编号为23的结点有左孩子但没有右孩子,则该二叉树共有( )个结点
A、24 B、45 C、46 D、 47

填空题

1、 有一棵树如下图所示,回答下面问题:
1题图
(1) 这棵树根结点是__________
(2) 这棵树的叶子结点是___________
(3) 结点K3的深度是__________
(4) 这棵树的度是________
(5) 这棵树的深度是_____________
(6) 结点K3的子女是_______________
(7) 结点K3的父结点是_________
2、 从概念上讲,树与二叉树是两种不同的数据结构,将树转化为二叉树的基本目的是_____
3、 一棵二叉树的结点数据采用顺序存储结构,存储于数组T中,如下图所示,则该二叉树的链接表示形式为___________
3题图
4、深度为k的完全二叉树至少有______个结点,至多有______个结点,若按自上而下,从左到右次序给结点编号,(从1开始),则编号最小的叶子结点的编号是______________
5、一棵二叉树的第i(i>=1)层最多有________个结点,一棵有n(n>0)个结点的满二叉树共有______个叶子和_____个非终端结点。
6、现有按中序遍历二叉的的结果是abc,问有_________种不同形态的二叉树可以得到这一遍历结果,这些二叉树是______________(画出相应的图形结构)
7、以数据集{4,5,6,7,10,12,18}为结点权值所构成的哈夫曼树为___________,其带权路径长度为___________________
8、深度为6的二叉树至多有 个结点。
9、一棵具有257个结点的完全二叉树,它的深度为 。
10、深度为h的二叉树最多有 个结点,最少有 个结点。
11、在一棵二叉树中,度为2的结点个数为n2个,度为1的结点个数为n1个,则该二叉树中度为0的结点个数为 个。

参考答案

一、 选择题
1、C 2、 B 3、B 4、A 5、B 6、D 7、A 8、B
9、D 10、C 11、C 12、C 13、A 14、D 15、C
二、填空题
1、 K1,K2K5K7K4,2,3,4,K5K6,K1
2、 树可采用二叉树的存储结构并利用二叉树的已有算法解决树的有关问题
3、答案3
4、 2k-1, 2k-1, 2k-2+1
5、 2i-1, 2[log2n], 2[log2n]-1
6、 5种
6答案
7、 路径长度为165
哈夫曼树为:
7答案

选择题

1、 在一个图中,所有顶点的度数之和等于所有边数的_________倍。
A、1/2 B、1 C、2 D、4
2、 在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的_________倍。
A、1/2 B、1 C、2 D、4
3、 一个有n个顶点的无向图最多有_____条边。
A、n B、n(n-1) C、n(n-1)/2 D、2n
4、 具有6个结点的无向图至少应有__________条边才能确保是一个连通图。
A、5 B、6 C、7 D、8
5、 对于一个具有n个结点的无向图,若采用邻接矩阵表示,则该矩阵的大小是_______
A、n B、(n-1)2 C、n-1 D、n2
6、对于一个具有n个顶点和e条边的无向图,若采用邻接矩阵表示,则表头向量的大小为_____,所有邻接表中的结点总数是________
①A、n B、n+1 C、n-1 D、n+e
②A、e/2 B、e C、2e D、n+e
7、已知一个图如右所示,若从顶点a 出发按深度搜索法进行遍历,则可能得到的一种顶点序列为_________;按宽度搜索法进行遍历,则可能得到的一种顶点序列为________.
①A、a,b,e,c,d,f B、a,c,f,e,b,d C、a,e,b,c,f,d D、a,e,d,f,c,b
②A、a,b,c,e,d,f B、a,b,c,e,f,d C、a,e,b,c,f,d D、a,c,f,d,e,b
7
8、已知一有向图的邻接表存储结构如右图所示
8
(1)、根据有向图的深度优先遍历算法,从顶点v1出发,所得到的顶点序列是_________
A、v1,v2,v3,v5,v4 B、v1,v2,v3,v4,v5
C、v1,v3,v4,v5,v2 D、v1,v4,v3,v5,v2
(2)、根据有向图的宽度优先遍历算法,从顶点v1出发,所得到的顶点序列是_____________
A、v1,v2,v3,v4,v5 B、v1,v3,v2,v4,v5
C、v1,v2,v3,v5,v4 D、v1,v4,v3,v5,v2
9、采用邻接表存储的图的深度优先遍历算法类似于二叉树的______________
A、先序遍历 B、中序遍历 C、后序遍历 D、按层遍历
10、采用邻接表存储的图的宽度优先遍历算法类似于二叉树的______________
A、先序遍历 B、中序遍历 C、后序遍历 D、按层遍历
11、在一个图G中,所有顶点的度数之和等于所有边数的( )倍。
A、1/2 B、 1 C、2 D、 4
13、设38是二叉排序树T中关键字最小的数据结点,则该结点
A、 没有左子树 B、 没有右子树 C、是叶结点 D、 不能确定
14、设图G是具有n个顶点的有向图,则图G最多有( )条边。
A、 n(n-1) B、n-1 C、n(n+1) D、n+1
15、关键路径是AOE网中 ( )
A、 从源点到汇点的最短路径B、 从源点到汇点的最长路径
C、 最长的回路D、 最短的回路
16、在一个具有n个顶点的无向图中,要连通全部顶点至少要( )条边。
A、 n B、n+1 C、n-1 D、n/2
17、( )邻接矩阵是对称矩阵。
A、 有向图 B、无向图 C、AOV网 D、AOE网
18、具有6个顶点的连通图的广度优先生成树,其边数为( )。
A、6 B、5 C、7 D、4
19、具有n个顶点e条边的无向图的邻接表,其边表结点的总数为( )
A、n B、e C、 2e D、 n+e
20、在含有n个顶点e条边的无向图的邻接矩阵中,零元素的个数为( )
A、 e B、2e
C、n2-e D、n2-2e
21、判定一个有向图中是否存在回路的方法是( )。
A、拓扑排序   B、广度优先遍历
C、 求关键路径方法 D、 Dijkstra方法
22、具有五层结点的二叉平衡树至少有( )个结点。
A、 10   B、12   C、15   D、17
23、下述编码哪一组不是前缀码( )?
A、00,01,10,11
B、 0,10,110,111
C、 0,1,00,11
D、 1,01,001,000

填空题

1、在无权图G的邻接矩阵A中,若(vi,vj)或<vi,vj>属于图G的边集,则对应元素A[i][j]等于_______,否则等于__________
2、在无向图G的邻接矩阵A中,若A[i][j]=1,则A[j][i]=________
3、已知一个图的邻接矩阵表示,计算第i个结点的入度的方法是____________
4、 已知一个图的邻接矩阵表示,删除所有从第i个结点出发的边的方法是_______________
5、 n个顶点e条边的图采用邻接矩阵存储,深度优先遍历算法的时间复杂度为 ;若采用邻接表存储时,该算法的时间复杂度为 。
6、判断一个有向图中是否存在环的操作是 。
7、无向图G中顶点数n,则图G最多有__ _条边。
8、具有n个顶点的无向连通图的深度优先生成树,其边数是( )条。

参考答案

一、 选择题
1、C 2、 B 3、C 4、A 5、D 6、A,C 7、D,B 8、C,B 9、A 10、D
二、填空题
1、 1,0
2、 1
3、 求矩阵第i列非0 元素之和
4、 将矩阵第i行全部置0

查找

选择题

1、 如图所示的4个二叉树,是平衡二叉树
1
2、 顺序查找法适合于存储结构为__________的线性表。
A、散列存储 B、顺序存储或链式存储 C、压缩存储 D、索引存储
3、 对线性表进行二分查找时,要求线性表必须
___
A、以顺序方式存储 B、以链接方式存储
C、以顺序方式存储,并且结点按关键字有序排序
D、以链接方式存储,并且结点按关键字有序排序
4、 采用顺序查找法查找长度为n的线性表时,每个元素的平均查找长度为________
A、n B、n/2 C、(n+1)/2 D、(n-1)/2
5、 采用二分法查找长度为n的线性表时,每个元素的平均查找长度为_________
A、O(n2) B、O(nlog2n) C、O(n) D、O(log2n)
6、 有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当用二分法查找值为82的结点时,次比较后查找成
A、1 B、2 C、4 D、8
7、 设哈希表长m=14,哈希函数H(key)=key%11,表中有4个结点:
add(15)=4 add(38)=5 add(61)=6 add(84)=7 其余地址为空,如果利用二次探测在散列处理冲突,关键字为49的结点地址为

A、8 B、3 C、5 D、9
8、有一个长度为12的有序表,按二分查找法对该表进行查找,在表内个各元素等概率的情况下查找成功所需的平均比较次数为
__________
A、35/12 B、37/12 C、39/12 D、43/12
9、采用分块查找时,若线性表中共有625个元素,查找每个元素的概率相同,假设采用顺序查找来确定结点所在的块时,每块应分为______个结点最佳。
A、10 B、25 C、6 D、625
10、具有五层结点的二叉平衡树至少有_______个结点。
A、10 B、12 C、15 D、17
11、对表长为n的线性表进行顺序查找,在等概率的情况下,查找成功的平均查找路径长度是( )。
A、 log2n B、 (n+1)/2 C、 n(n+1)/2 D、 n2
12、有一个散列表,表的长度M为100,采用除余法构造散列函数,即:H(k)=K mod P (P<=M)。为使散列函数具有较好的特性,P的选择应该是( )。
A、9 B、95 C、97 D、91
13、设有有序表(5,13,19,21,37,56,64,78,80,88,90),则按折半查找法查找21,须比较( )次。
A、4 B、3 C、 2 D、1
22、在等概率的条件下,顺序查找法在查找成功时的平均查找长度为( )
A、n B、 2n C、 n/2 D、 (n+1)/2
23、下列排序算法中,( )算法可能在初始序列有序时,花费的时间反而最多。
A、 堆排序 B、 冒泡排序
C、 快速排序 D、 插入排序

填空题

1、顺序查找法的平均查找长度为__________,二分查找法的平均查找长度为_________,分块查找法(以顺序查找确定块)的平均查找长度为_________,分块查找法(以二分查找确定块)的平均查找长度为_________,哈希表查找法采用链接法处理冲突时的平均查找长度为_______.
2、 对于长度为n的线性表,若进行顺序查找,则时间复杂度为________,若采用二分法查找,则时间复杂度为_________,若采用分块查找(假定总块数和每块长度均接近于n的平方根),则时间复杂度为____________
3、 已知一个有序表(13,18, 24, 35, 47, 50, 62, 83, 90, 115, 134),当二分检索值为90的元素时的比较次数是 次。

参考答案

一、 选择题
1、B 2、B 3、C 4、C 5、D 6、C 7、D 8、B 9、B 10、C
二、填空题
1、 (n+1)/2, ((n+1)*log2(n+1))/n-1, (s2+2s+n)/2s log2(n/s+1)+s/2 1+ɑ
2、 O(n), O(log2n), O(n^1/2))

内排序

选择题

1、 在待排序的元素序列基本有序的前提下,效率最高的排序方法是____________
A、插入排序法 B、快速排序法 C、堆排序 D、归并排序
2、 一组纪录的排序码为(46,79,56,38,40,84),则用堆排序法建立的初始堆为_____。
A、79,46,56,38,40,80 B、84,79,56,38,40,46
C、84,79,56,46,40,38 D、84,56,79,40,46,38
3、一组纪录的排序码为(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
4、一组记录的排序码(25,48,16,35,79,82,23,40,36,72),其中包含有5个长度为2的有序表,按归并排序的方法对该序列进行一趟归并后的结果为_________
A、16 25 35 48 23 40 79 82 36 72 B、16 25 35 48 79 82 23 36 40 72
C、16 25 48 35 79 82 23 36 40 72 D、16 25 35 48 79 26 36 40 72 82
5、排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为________
A、希尔排序 B、起泡排序 C、插入排序 D、选择排序
6、排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)的一端的方法,称为________
A、希尔排序 B、起泡排序 C、插入排序 D、选择排序
7、用某种排序方法对线性表(25,48,21,47,15,27,68,35,20)进行排序时,元素序列的变化情况如下:
(1)、25,48,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
则所采用的排序方法是___________
A、选择排序 B、希尔排序 C、归并排序 D、快速排序
8、 下述几中排序方法中,平均查找长度最小的是________
A、插入排序 B、选择排序 C、快速排序 D、归并排序
9、 下述几种排序方法中,要求内存量最大的是_______
A、插入排序 B、选择排序 C、快速排序 D、归并排序
10、快速排序方法在______情况下最不利于发挥其长处。
A、要排序的数据量太大 B、要排序的数据中含有多个相同值
C、要排序的数据已基本有序 D、要排序的数据的个数为奇数
11、在待排序的记录关键字序列基本有序的前提下,下列效率最高的排序方法是( )。
A、 选择排序 B、 插入排序 C、 快速排序 D、 归并排序
12、在下列排序方法中,( )是稳定的排序方法。
A、快速排序 B、堆排序 C、希尔排序 D、归并排序
13、设有有序表(5,13,19,21,37,56,64,78,80,88,90),则按折半查找法查找21,须比较( )次。
A、 4 B、3 C、 2 D、 1
22、设有字符序列{Q、H、C、Y、P、A、M、S、R、D、F、X},问新序列{F、H、C、D、P、A、M、Q、R、S、Y、X}是下列哪个排序算法一趟扫描的结果。( )
A、起泡排序 B、初始步长为4的shell的排序
C、二路归并排序 D、以第一个元素为分界元素的快速排

填空题

1、在对一组记录(54,38,96,23,15,72,60,45,83)进行直接插入排序时,当把第7个记录60插入到有序表时,为寻找插入位置需比较_____次。
2、在利用快速排序法对一组记录(54,38,96,23,15,72,60,45,83)进行快速排序时,递归调用而使用的栈的所能达到的最大深度为___________,共需递归调用的次数为_____,其中第二次递归调用是对____________一组进行快速排序。
3、在堆排序,快速排序和归并排序中,若只从存储空间考虑,则应首先选取________方法,其次选取_________方法,最后选取___________方法;若只从排序结果的稳定性考虑,则应选取_____________方法;若只从平均情况下的排序最快考虑,则应选取_________方法;若只从最坏情况下排序最快,并且要节省内存考虑,则应选取_________方法。
4、在插入排序、希尔排序、选择排序、快速排序、堆排序、归并排序和基数排序中,排序时不稳定的有______________________
5、在插入排序、希尔排序、选择排序、快速排序、堆排序、归并排序和基数排序中,平均比较次数最少的排序是______________________,需要内存容量最多的是__________
6、在插入和选择排序中,若初始数据基本正序,则选用________________;若初始数据基本反序,则选用_______________
7、对n个元素的序列起泡排序时,最少的比较次数是______________.
8、在堆排序、快速排序和归并排序中,若只从最坏情况下最快并且要节省内存考虑,则应选取 方法。
9、在堆排序和快速排序中,若初始记录接近正序或反序,则选用 ;若初始记录基本无序,则最好选用 。

参考答案

一、 选择题
1、A 2、B 3、C 4、 A 5、C 6、D 7 、D 8、C 9、D 10、C
二、填空题
1、 3
2、 2,4,(23,38,15)
3、 堆排序,快速排序,归并排序,归并排序,快速排序,堆排序
4、 希尔排序、选择排序、快速排序和堆排序
5、 快速排序,基数排序
6、 插入排序,选择排序
7、 n-1

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值