大连东软 数据结构题库.docx
- 文档编号:8596771
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:78
- 大小:293.04KB
大连东软 数据结构题库.docx
《大连东软 数据结构题库.docx》由会员分享,可在线阅读,更多相关《大连东软 数据结构题库.docx(78页珍藏版)》请在冰豆网上搜索。
大连东软数据结构题库
1.6习题
1.6.1知识点:
数据结构的定义
一、选择题
1①数据结构通常是研究数据的(A)及它们之间的相互联系。
A.存储和逻辑结构B.存储结构C.顺序结构D.链式存储结构
2①数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为(C)
A.存储结构B.逻辑结构C.顺序存储结构D.链式存储结构
3①线性结构是数据元素之间存在一种(D)。
A.一对多关系B.多对多关系C多对一关系D一对一关系
4①计算机内部数据处理的基本单位是(B)。
A.数据B.数据元素C.数据项D.数据库
5②从逻辑上可以把数据结构分为(C)两大类。
【武汉交通科技1996】
A.动态结构、静态结构B.顺序结构、链式结构
C.线性结构、非线性结构D.初等结构、构造型结构
二、填空题
1①数据结构按逻辑结构可分为四大类,它们分别是集合、线性、树、图。
2①数据的存储结构可用四种基本的存储方法表示,它们分别是顺序、链式、散列、索引。
3、判断题
(F)1①数据元素是数据的最小单位。
(T)2①记录是数据处理的最小单位。
(F)3①数据的逻辑结构是指数据的各数据项之间的逻辑关系。
(T)4①数据的物理结构是指数据在计算机内的实际存储形式。
4、简答题
1①简述什么是数据结构?
2②数据结构与数据类型有什么区别?
【哈尔滨工业2001】
1.6.2知识点:
算法的概念
一、选择题
1①计算机算法指的是(C)
A.计算方法B.排序方法C.解决问题的有限运算序列D.调度方法
2①算法分析的目的是(
(1)C),算法分析的两个主要方面(
(2)A).
(1)A.找出数据结构的合理性B.研究算法中的输入与输出的关系
C.分析算法的效率以求改进D.分析算法的易查性和文档性
(2)A.空间复杂度和时间复杂度B.正确性和简明性
C.可读性和文档性D.数据复杂性和程序复杂性
3②设语句X++的时间是单位时间,则语句:
for(i=1;i<=n;i++)x++;
时间复杂度为(C)。
A.O
(1)B.O(n)C.O(n2)D.O(n3)
4②算法的计算量的大小称为计算的(B)。
【北京邮电2000】
A.效率B.复杂性C.现实性D.难度
5②算法的时间复杂度取决于(C)【中科院计算所1998】
A.问题的规模B.待处理数据的初态C.A和B
6②下面关于算法说法错误的是(A)【南京理工2000】
A.算法最终必须由计算机程序实现
B.为解决某问题的算法同为该问题编写的程序含义是相同的
C.算法的可行性是指指令不能有二义性
D.以上几个都是错误的
7②下面说法错误的是(D)【南京理工2000】
(1)算法原地工作的含义是指不需要任何额外的辅助空间
(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法
(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界
(4)同一个算法,实现语言的级别越高,执行效率就越低
A.
(1)B.
(1),
(2)C.
(1),(4)D.(3)
8②程序段for(i=n-1;i>=1;i++)for(j=1;j<=i;j++)
if(A[j]>A[j+1])
A[j]与A[j+1]对换;
其中n为正整数,则最后一行的语句频度在最坏情况下是(D)【南京理工1998】
A.O(n)B.O(nlog2n)C.O(n3)D.O(n2)
二、填空题
1①以夹杂自然语言和程序语句的形式来描述解决问题的方法称为____伪码________。
2①一个算法的效率可分为___时间______效率和__空间_______效率.
3②有一个程序片断如下:
for(i=0;i 则其时间复杂度为: _O(n)________ 4②有一个程序片断如下: for(i=0;i 则其时间复杂度为: O(n3) 5②有一个程序片断如下: for(i=0;i while(j>=2)j=j/2; } 则其时间复杂度为: O(nlog2n) 3、判断题 (T)1①算法的优劣与算法描述语言无关,但与所用计算机有关。 (T)2①健壮的算法不会因非法的输入数据而出现莫名其妙的状态。 (F)3①程序一定是算法。 4、简答题 1①如何判断一个算法的好坏? 2③调用下列C函数f(n)回答下列问题: (1)试指出f(n)值的大小,并写出f(n)值的推导过程; (2)假定n=5,试指出f(5)值的大小和执行f(5)时的输出结果。 C函数: intf(intn) {inti,j,k,sum=0; for(i=l;i {for(j=n;j>i-1;j--) for(k=1;k return(sum); }【华中理工2000】 2.7习题 2.7.1知识点: 线性表的逻辑结构 一、选择题 1①线性表L=(a1,a2,…,an),下列说法正确的是(D)。 A.每个元素都有一个直接前驱和一个直接后继。 B.线性表中至少要有一个元素。 C.表中诸元素的排列顺序必须是由小到大或由大到小。 D.除第一个和最后一个元素外,其余每个元素都有一个且仅有一个直接前驱和直接后继。 2①在线性表的下列运算中,不改变数据元素之间结构关系的运算是(D)。 A.插入B.删除C.排序D.定位 3①线性表是具有n个(C)的有限序列(n>0)。 【清华1998】 A.表元素B.字符C.数据元素D.数据项E.信息项 二、判断题 (T)1①线性表中的每个结点最多只有一个前驱和一个后继。 (F)2①线性表中的每个结点都至少有一个前驱结点和后继结点。 (F)3①线性表是N个数的有限序列。 (F)4①同一线性表的数据元素可以具有不同的特性。 (T)5①线性表的长度n就是表中数据元素的个数,当n=0时,称为空表。 (T)6①线性表是一个相当灵活的数据结构,它的长度可根据需要增长或缩短。 (F)7①对线性表中的数据元素只能进行访问,不能进行插入和删除操作。 2.7.2知识点: 线性表的顺序存储结构 一、选择题 1①在一个长度为n的顺序表中,在第i个元素(1<=i<=n+1)之前插入一个新元素时 需向后移动(B)个元素. A.n-1B.n-i+1C.n-i-1D.i 2①若某线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用(D)存储方式最节省时间。 A.单链表B.双链表C.单向循环D.顺序表 3②一个数组第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是(B) A.110B.108C.100D.120 4①下述哪一条是顺序存储结构的优点(A)。 【北方交通2001】 A.存储密度大B.插入运算方便 C.删除运算方便D.可方便地用于各种逻辑结构的存储表示 5③若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为(C)(1<=i<=n+1)。 【北京航空航天1999】 A.O(0)B.O (1)C.O(n)D.O(n2) 6③对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为(C)。 【青岛2000】 A.O(n)O(n)B.O(n)O (1) C.O (1)O(n)D.O (1)O (1) 2、填空题 1①线性表的顺序存储的缺点是在任意位置上___插入_____数据与____删除_____数据费时间。 2①设一线性表的顺序存储,总存储容量为M,其元素存储位置的范围为__0~M-1__________。 3①向一个长度为n的向量中删除第i个元素(1≤i≤n)时,需向前移动____n-i______个元素。 3、简答题 1③已知线性表的存储结构为顺序表,阅读下列算法,并回答问题: voidf30(SeqList*L){inti,j; for(i=j=0;i if(i! =j)L->data[j]=L->data[i];j++; } L->length=j; } (1)设线性表L=(21,-7,-8,19,0,-11,34,30,-10),写出执行f30(&L)后L状态;(21,19,0,34,30) (2)简述算法f30的功能。 删除顺序表中小于0的元素 四、编程题 1④已知顺序表La中数据元素按非递减有序排列。 试写一个算法,将x插入到La的合适位置上,保持该表的有序性。 2.7.3知识点: 线性表的链式存储结构 一、选择题 1①链表是一种采用(B)存储结构存储的线性表。 A.顺序B.链式C.星式D.网状 2①链接存储的存储结构所占存储空间(A)。 A.分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针。 B.只有一部分,存放结点值。 C.只有一部分,存储表示结点间关系的指针。 D.分两部分,一部分存放结点值,另一部分存放结点所占单元数。 3①线性表若采用链式存储结构时,要求内存中可用存储单元的地址(D)。 A.必须是连续的B.部分地址必须是连续的 C.一定是不连续的D.连续或不连续都可以 4①线性表L在(B)情况下适用于使用链式结构实现。 A.需经常修改L中的结点值B.需不断对L进行删除插入 C.L中含有大量的结点D.L中结点结构复杂 5①对单链表表示法,以下说法错误的是(C)。 A.数据域用于存储线性表的一个数据元素。 B.指针域(或链域)用于存放一个指向本结点所含数据元素的直接后继所在结点的指针。 C.所有数据通过指针的链接而组织成单链表。 D.NULL称为空指针,它不指向任何结点只起标志作用。 6①以下说法正确的是(D)。 A.顺序存储方式的优点是存储密度大且插入、删除运算效率高 B.链表的每个结点中都恰好包含一个指针 C.线性表的顺序存储结构优于链式存储结构 D.顺序存储结构属于静态结构而链式结构属于动态结构 7①以下说法错误的是(D)。 A.求表长、定位这两种运算在采用顺序存储结构时实现的效率不比采用链式存储结构时实现的效率低 B.顺序存储的线性表可以随机存取 C.由于顺序存储要求连续的存储区域,所以在存储管理上不够灵活 D.线性表的链式存储结构优于顺序存储结构 8①不带头结点的单链表head为空的判定条件是(A)。 A.head==NULLB.head->next==NULL C.head->next==headD.head! =NULL 9①带头结点的单链表head为空的判定条件是(B)。 A.head==NULLB.head->next==NULL C.head->next==headD.head! =NULL 10②在头指针为head的非空单循环链表中,指针p指向尾结点,下列关系成立的是(A)。 A.p->next==headB.p->next->next==head C.p->next==NULLD.p==head 11②在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行语句(C)。 A.s->next=p->next;p->next=s;B.p->next=s->next;s->next=p; C.q->next=s;s->next=p;D.p->next=s;s->next=q; 12②在一个单链表中,若p所指结点不是最后结点,在p之后插入s结点,则应执行语句(B)。 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; 13②在一个单链表中,若删除p所指结点的后续结点,则应执行语句(A)。 A.p->next=p->next->next;B.p=p->next;p->next=p->next->next; C.p->next=p->next;D.p=p->next->next; 14②指针p、q和r依次指向某循环链表中三个相邻的结点,交换结点*q和结点*r在表中次序的程序段是(A)。 A.p->next=r;q->next=r->next;r->next=q; B.p->next=r;r->next=q;q->next=r->next; C.r->next=q;q->next=r->next;p->next=r; D.r->next=q;p->next=r;q->next=r->next; 15①链表不具有的特点是(B)【福州1998】 A.插入、删除不需要移动元素B.可随机访问任一元素 C.不必事先估计存储空间D.所需空间与线性长度成正比 16①下面的叙述不正确的是(BC)【南京理工1996】 A.线性表在链式存储时,查找第i个元素的时间同i的值成正比 B.线性表在链式存储时,查找第i个元素的时间同i的值无关 C.线性表在顺序存储时,查找第i个元素的时间同i的值成正比 D.线性表在顺序存储时,查找第i个元素的时间同i的值无关 17①下面关于线性表的叙述中,错误的是哪一个? (B)【北方交通2001】 A.线性表采用顺序存储,必须占用一片连续的存储单元。 B.线性表采用顺序存储,便于进行插入和删除操作。 C.线性表采用链接存储,不必占用一片连续的存储单元。 D.线性表采用链接存储,便于插入和删除操作。 18①在一个以h为头的单循环链中,p指针指向链尾的条件是(A)【南京理工1998】 A.p->next=hB.p->next=NULLC.p->next->next=hD.p->data=-1 19②若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用(A)存储方式最节省时间。 【哈尔滨工业2001】 A.顺序表B.双链表C.带头结点的双循环链表D.单循环链表 20②某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用(D)存储方式最节省运算时间。 【南开2000】 A.单链表B.仅有头指针的单循环链表C.双链表D.仅有尾指针的单循环链表 21②设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用(D)最节省时间。 【合肥工业2000】 A.单链表B.单循环链表C.带尾指针的单循环链表D.带头结点的双循环链表 22②线性表(a1,a2,…,an)以链接方式存储时,访问第i位置元素的时间复杂性为(C) 【中山1999】 A.O(i)B.O (1)C.O(n)D.O(i-1) 23③完成在双循环链表结点p之后插入s的操作是(D)。 【北方交通1999】 A.p->next: =s;s->priou: =p;p->next->priou: =s;s->next: =p->next; B.p->next->priou: =s;p->next: =s;s->priou: =p;s->next: =p->next; C.s->priou: =p;s->next: =p->next;p->next: =s;p->next->priou: =s; D.s->priou: =p;s->next: =p->next;p->next->priou: =s;p->next: =s; 24③在双向循环链表中,在p指针所指向的结点前插入一个指针q所指向的新结点,其修改指针的操作是(C)。 【北京邮电1998】【青岛2000】注: 双向链表的结点结构为(llink,data,rlink)。 供选择的答案: A.p->llink=q;q->rlink=p;p->llink->rlink=q;q->llink=q; B.p->llink=q;p->llink->rlink=q;q->rlink=p;q->llink=p->llink; C.q->rlink=p;q->llink=p->llink;p->llink->rlink=q;p->llink=q; D.q->llink=p->llink;q->rlink: =p;p->llink=q;p->llink=q; 25③在双向链表存储结构中,删除p所指的结点时需修改指针(A)。 【西安电子科技1998】 A.p->prior->next=p->nextp->next->prior=p->prior; B.p->prior=p->prior->priorp->prior->next=p; C.p->prior->prior: =pp->next=p->next->next D.p->next=(p->prior)->priorp->prior=p->next->next 二、填空题 1①线性表的链式存储是用___malloc______语句实现空间单元动态分配。 2①单链表是___线性表_____的链接存储表示。 3①头结点地址指针为L的循环单链表,空表的判别标志是___L->next==NULL___。 4①在一个单链表中删除p所指结点时,应执行以下操作: q=p->next;p->data=p->next->data;p->next=q->next_________;free(q); 5③下段程序的功能: 有一头指针为head的链表,将new指针指向的节点插入到data域为7的节点的后边。 将程序补充完整。 P=head; while(P! =NULL) {if(P->data==7) /*找到位置插入结点后跳出循环*/ { (1)_new->next=p->next_______________; (2)_p->next=new_______________;(3)______break__________;}else (4)___p=p->next______________;/*指针后移*/ } if(P==NULL) printf(“\nthepositionisn’texist! ”); 6③假设某个不设头指针的无头结点单向循环链表的长度大于1,s为指向链表中某个结点的指针。 算法f30的功能是,删除并返回链表中指针s所指结点的前驱。 请在空缺处填入合适的内容,使其成为完整的算法。 typedefstructnode{DataTypedata;structnode*next;}*LinkList; DataTypef30(LinkLists){ LinkListpre,p;DataTypee;pre=s;p=s->next;while( (1)__p->next! =s____){pre=p; (2)p=p->next____________; } pre->next=(3)__p->next____________;e=p->data;free(p);returne; } 3、判断题 (F)1①单链表从任何一个结点出发,都能访问到所有结点。 (F)2①线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。 4、简答题 1①描述以下几个概念: 顺序存储结构、链式存储结构、顺序表、有序表。 2②描述以下三个概念的区别: 头指针、头结点、首元结点。 在单链表中设置头结点的作用是什么? 3②线性表有两种存储结构: 一是顺序表,二是链表,试问: (1)如果有n个线性表同时共存,并且在处理过程中各表的长度会动态地发生变化,线性表的总数也会自动地改变。 在此情况下,应选用哪种存储结构? 为什么? 链表 (2)若线性表的总数基本稳定,且很少进行插入和删除,但要求以最快的速度存取线性表中的元素,那么应采用哪种存取结构? 为什么? 顺序表 4③假设本测试中使用的链表如图2.45所示,结点定义如下: structList{intdata; structList*next; }; typedefstructListNode; typedefNode*Link; LinkP,Q,R,S,head; Linkpointer,back,new; 对以下单链表分别执行下列程序段,要求分别画出结果图。 (1)Q=head->next->next; Q指向7 (2)R->data=P->data; 3变5 (3)R->data=P->next->data; 3变7 (4)S=P;while(S->next! =NULL) {S->data=S->data*2;S=S->next;} 4101468 (5)S=P;while(S! =NULL) {S->data=S->data*2;S=S->next;} 41014616 5③假设本测试中使用的链表如图2.45所示,结点定义如第4题所示。 画出执行如下程序段后各指针及链表的示意图。 head=(Link)malloc(sizeof(Node));head->data=0;head->next=NULL;P=head;for(i=1;i<4;i++) {new=(Link)malloc(sizeof(Node));new->data=2*i;new->next=NULL;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大连东软 数据结构题库 大连 数据结构 题库