数据结构模拟题.docx
《数据结构模拟题.docx》由会员分享,可在线阅读,更多相关《数据结构模拟题.docx(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构模拟题1.在数据结构中,从逻辑上可以把数据结构分成()。 A动态结构和静态结构B紧凑结构和非紧凑结构C线性结构和非线性结构(正确答案)D内部结构和外部结构2.与数据元素本身的形式、内容、相对位置、个数无关的是数据的()。 A存储结构B存储实现C逻辑结构(正确答案)D运算实现3.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着()。 A数据具有同一特点B不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致(正确答案)C每个数据元素都一样D数据元素所包含的数据项的个数要相等4.以下说法正确的是()。 A数据元素是数据的最小单位B数据项是数据的基本单位C数据结构是带
2、有结构的各数据项的集合D一些表面上很不相同的数据可以有相同的逻辑结构(正确答案)答案解析:数据元素是数据的基本单位,数据项是数据的最小单位,数据结构是带有结构的各数据元素的集合。5.算法的时间复杂度取决于()。 A问题的规模B待处理数据的初态C计算机的配置DA和B(正确答案)答案解析:算法的时间复杂度不仅与问题的规模有关,还与问题的其他因素有关。如某些排序的算法,其执行时间与待排序记录的初始状态有关。为此,有时会对算法有最好、最坏以及平均时间复杂度的评价。6.以下数据结构中,()是非线性数据结构 A树(正确答案)B字符串C队列D栈7.顺序表中第一个元素的存储地址是100,每个元素的长度为2,则
3、第5个元素的地址是()。 A110B108(正确答案)C100D120答案解析:顺序表中的数据连续存储,所以第5个元素的地址为:100+24=108。8.在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是()。 A访问第i个结点(1in)和求第i个结点的直接前驱(2in)(正确答案)B在第i个结点后插入一个新结点(1in)C删除第i个结点(1in)D将n个结点从小到大排序答案解析:在顺序表中插入一个结点的时间复杂度都是O(n2),排序的时间复杂度为O(n2)或O(nlog2n)。顺序表是一种随机存取结构,访问第i个结点和求第i个结点的直接前驱都可以直接通过数组的下标直接定位,时间复杂度是
4、O(1)。9.向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动 的元素个数为()。 A8B63.5(正确答案)C63D7答案解析:平均要移动的元素个数为:n/2。10.链接存储的存储结构所占存储空间()。 A分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针(正确答案)B只有一部分,存放结点值C只有一部分,存储表示结点间关系的指针D分两部分,一部分存放结点值,另一部分存放结点所占单元数11.线性表若采用链式存储结构时,要求内存中可用存储单元的地址()。 A必须是连续的B部分地址必须是连续的C一定是不连续的D连续或不连续都可以(正确答案)12.线性表L在()情
5、况下适用于使用链式结构实现。 A需经常修改L中的结点值B需不断对L进行删除插入(正确答案)CL中含有大量的结点DL中结点结构复杂答案解析:链表最大的优点在于插入和删除时不需要移动数据,直接修改指针即可。13.单链表的存储密度()。 A大于1B等于1C小于1(正确答案)D不能确定答案解析:存储密度是指一个结点数据本身所占的存储空间和整个结点所占的存储空间之比,假设单链表一个结点本身所占的空间为D,指针域所占的空间为N,则存储密度为:D/(D+N),一定小于1。14.将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是()。 An(正确答案)B2n-1C2nDn-1答案解析:当第一个有序
6、表中所有的元素都小于(或大于)第二个表中的元素,只需要用第二个表中的第一个元素依次与第一个表的元素比较,总计比较n次。15.在一个长度为n的顺序表中,在第i个元素(1in+1)之前插入一个新元素时须向后移动()个元素。 An-iBn-i+1(正确答案)Cn-i-1DI16.线性表L=(a1,a2,an),下列说法正确的是()。 A每个元素都有一个直接前驱和一个直接后继B线性表中至少有一个元素C表中诸元素的排列必须是由小到大或由大到小D除第一个和最后一个元素外,其余每个元素都有一个且仅有一个直接前驱和直接后继。(正确答案)16.创建一个包括n个结点的有序单链表的时间复杂度是()。 AO(1)BO
7、(n)CO(n2)(正确答案)DO(nlog2n)答案解析:单链表创建的时间复杂度是O(n),而要建立一个有序的单链表,则每生成一个新结点时需要和已有的结点进行比较,确定合适的插入位置,所以时间复杂度是O(n2)。17.以下说法错误的是()。 A求表长、定位这两种运算在采用顺序存储结构时实现的效率不比采用链式存储结构时实现的效率低B顺序存储的线性表可以随机存取C由于顺序存储要求连续的存储区域,所以在存储管理上不够灵活D线性表的链式存储结构优于顺序存储结构(正确答案)答案解析:链式存储结构和顺序存储结构各有优缺点,有不同的适用场合。18.在单链表中,要将s所指结点插入到p所指结点之后,其语句应为
8、()。 As-next=p+1; p-next=s;B(p).next=s; (s).next=(p).next;Cs-next=p-next; p-next=s-next;Ds-next=p-next; p-next=s;(正确答案)19.在双向链表存储结构中,删除p所指的结点时须修改指针()。 Ap-next-prior=p-prior; p-prior-next=p-next;(正确答案)Bp-next=p-next-next; p-next-prior=p;Cp-prior-next=p; p-prior=p-prior-prior;Dp-prior=p-next-next; p-ne
9、xt=p-prior-prior;20.在双向循环链表中,在p指针所指的结点后插入q所指向的新结点,其修改指针的操作是()。 Ap-next=q; q-prior=p; p-next-prior=q; q-next=q;Bp-next=q; p-next-prior=q; q-prior=p; q-next=p-next;Cq-prior=p; q-next=p-next; p-next-prior=q; p-next=q;(正确答案)Dq-prior=p; q-next=p-next; p-next=q; p-next-prior=q;21.若让元素1,2,3,4,5依次进栈,则出栈次序不可
10、能出现在()种情况。 A5,4,3,2,1B2,1,5,4,3C4,3,1,2,5(正确答案)D2,3,5,4,1答案解析:栈是后进先出的线性表,不难发现C选项中元素1比元素2先出栈,违背了栈的后进先出原则,所以不可能出现C选项所示的情况。22.若已知一个栈的入栈序列是1,2,3,n,其输出序列为p1,p2,p3,pn,若p1=n,则pi为()。 AiBn-iCn-i+1(正确答案)D不确定答案解析:栈是后进先出的线性表,一个栈的入栈序列是1,2,3,n,而输出序列的第一个元素为n,说明1,2,3,n一次性全部进栈,再进行输出,所以p1=n,p2=n-1,pi=n-i+1。23.数组Qn用来表
11、示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素个数的公式为()。 Ar-fB(n+f-r)%nCn+r-fD(n+r-f)%n(正确答案)答案解析:对于非循环队列,尾指针和头指针的差值便是队列的长度,而对于循环队列,差值可能为负数,所以需要将差值加上MAXSIZE(本题为n),然后与MAXSIZE(本题为n)求余,即(n+r-f)%n。24.链式栈结点为:(data,link),top指向栈顶.若想摘除栈顶结点,并将删除结点的值保存到x中,则应执行操作()。 Ax=top-data;top=top-link;(正确答案)Btop=t
12、op-link;x=top-link;Cx=top;top=top-link;Dx=top-link;答案解析:x=top-data将结点的值保存到x中,top=top-link栈顶指针指向栈顶下一结点,即摘除栈顶结点。25.设有一个递归算法如下int fact(int n) /n大于等于0if(n=0) return 1;else return nfact(n-1); 则计算fact(n)需要调用该函数的次数为()。 An+1(正确答案)BBn-1CC nDD n+2答案解析:特殊值法。设n=0,易知仅调用一次fact(n)函数,故选A。26.栈在()中有所应用。 A递归调用B函数调用C表达
13、式求值D前三个选项都有(正确答案)答案解析:递归调用、函数调用、表达式求值均用到了栈的后进先出性质。27.为解决计算机主机与打印机间速度不匹配问题,通常设一个打印数据缓冲区。主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是()。 A队列(正确答案)B栈C 线性表D有序表答案解析:解决缓冲区问题应利用一种先进先出的线性表,而队列正是一种先进先出的线性表。28.设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5和e6依次进入栈S,一个元素出栈后即进入Q,若6个元素出队的序列是e2、e4、e3、e6、e5和e1,则栈S的容量至少应该是()。
14、 A2B3(正确答案)C4D 6答案解析:元素出队的序列是e2、e4、e3、e6、e5和e1,可知元素入队的序列是e2、e4、e3、e和e6依次进入栈,易知栈S中最多同时存在3个元素,故栈S的容量至少为3。29. 若一个栈以向量V1.n存储,初始栈顶指针top设为n+1,则元素x进栈的正确操作是()。 Atop+; Vtop=x;BVtop=x; top+;Ctop-; Vtop=x;(正确答案)DVtop=x; top-;答案解析:初始栈顶指针top为n+1,说明元素从数组向量的高端地址进栈,又因为元素存储在向量空间V1.n中,所以进栈时top指针先下移变为n,之后将元素x存储在Vn。31.
15、设计一个判别表达式中左,右括号是否配对出现的算法,采用()数据结构最佳。 A线性表的顺序存储结构B队列C. 线性表的链式存储结构D. 栈(正确答案)答案解析:利用栈的后进先出原则。32.用链接方式存储的队列,在进行删除运算时()。 A. 仅修改头指针B. 仅修改尾指针C. 头、尾指针都要修改D. 头、尾指针可能都要修改(正确答案)答案解析:一般情况下只修改头指针,但是,当删除的是队列中最后一个元素时,队尾指针也丢失了,因此需对队尾指针重新赋值。33.循环队列存储在数组A0.m中,则入队时的操作为()。 A. rear=rear+1B. rear=(rear+1)%(m-1)C. rear=(r
16、ear+1)%mD. rear=(rear+1)%(m+1)(正确答案)答案解析:数组A0.m中共含有m+1个元素,故在求模运算时应除以m+1。34.最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是()。 A. (rear+1)%n=frontB. rear=front(正确答案)Crear+1=frontD. (rear-l)%n=front答案解析:最大容量为n的循环队列,队满条件是(rear+1)%n=front,队空条件是rear=front。35.栈和队列的共同点是()。 A. 都是先进先出B. 都是先进后出C. 只允许在端点处插入和删除元素(正确答案)D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 模拟
限制150内