如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
数据结构综合练习一、选择题1.数据的存储结构包括顺序、链接、散列和()4种基本类型。A索引B数组C集合D向量2.下面程序的时间复杂性的量级为()。inti=0,s1=0,s2=0;while(i++<n){if(i%2)s1+=i;elses2+=i;}A.O(1)B.O(1bn)C.O(n)D.O(2n)3.下面程序段的时间复杂度为()。for(inti=0;i<m;i++)for(intj=0;j<n;j++)a[i][j]=i*j;A.O(m2)B.O(n2)C.O(m+n)D.O(m*n)4.在一个长度为n的顺序存储结构的线性表中,向第i个元素(1≤i≤n+1)位置插入一个元素时,需要从后向前依次后移()个元素。A.n-iB.n-i+lC.n-i-lD.i5.在一个长度为n的顺序存储结构的线性表中,删除第i个元素(1≤i≤n+1)时,需要从前向后依次后移()个元素。A.n-iB.n-i+lC.n-i-lD.i6.在一个长度为n的线性表中,删除值为x的元素时需要比较元素和移动元素的总次数为()。A.(n+1)/2B.n/2C.nD.n+17.在一个顺序表中的任何位置插入一个元素的时间复杂度为()。A.O(n)B.O(n/2)C.O(1)D.O(n2)8.线性表的链式存储比顺序存储更有利于进行()操作。A.查找B.表尾插入和删除C.按值插入和删除D.表头的插入和删除9.线性表的顺序存储比链式存储更有利于进行()操作。A.查找B.表尾插入和删除C.按值插入和删除D.表头的插入和删除10.在一个表头指针为ph的单链表中,若要向表头插入一个由指针p指向的结点,则应执行()操作。A.ph=p;p->next=ph;B.p->next=ph;ph=p;C.p->next=ph;p=ph;D.p->next=ph->next;ph->next=p;11.在一个表头指针为ph的单链表中,若要在指针q所指结点的后面插入一个由指针p所指向的结点,则执行()操作。A.q->next=p->next;p->next=q;B.p->next=q->next;q=p;C.q->next=p->next;p->next=q;D.p->next=q->next;q->next=p;12.在一个单链表HL中,若要删除由指针q所指向结点的后继结点(若存在的话),则执行()操作。A.p=q->next;p->next=q->next;B.p=q->next;q->next=p;C.p=q->next;q->next=p->next;D.q->next=q->next->next;q->next=q;13.栈的插入和删除操作在()进行。A.栈顶B.栈底C.任意位置D.指定位置14.若让元素1,2,3,4依次进栈,则出栈次序不可能出现()的情况。A.3,2,1,4B.2,1,4,3C.4,3,2,1D.1,4,2,3.15.假定一个顺序循环队列的队首和队尾指针分别用f和r表示,则判断队空的条件为()。A.f+1==rB.r+1==fC.f==0D.f==r16.假定一个顺序循环队列存储于数组a[N],其队首和队尾指针分别用f和r表示,则判断队满的条件为()。A.(r-1)%N==fB.(r+1)%N==fC.(f-1)%N==rD.(f+1)%N==r17.二维数组A[12,10]采用行优先存储,每个数据元素占用4个存储单元,该数组的首地址(A[0,0]的地址)为1200,则A[6,5]的地址为()。A.1400B.1404C.1372D.146018.在一棵具有n个结点的二叉树中,所有结点的空子树个数等于()。A.nB.n-1C.n+1D.2n19.有如图1所示的一棵二叉树,则该二叉树的中序遍历序列为()。A.ABCDEFGB.CDBGFEAC.CBDAEGFD.ABECDFG20.有如图1所示的一棵二叉树,则该二叉树的先序遍历序列为()。A.ABCDEFGB.CDBGFEAC.CBDAEGFD.ABECDFG21.有如图1所示的一棵二叉树,则该二叉树的后序便利序列为()。A.ABCDEFGB.CDBGFEAC.CBDAEGFD.ABECDFG22.利用n个值生成的哈夫曼树中共有()个结点。A.nB.n+1C.2nD.2n-123.利用3,6,8,12这4个值作为叶子结点的权,生成一棵哈夫曼树,该树的带权路径长度为()。A.55B.29C.5