ImageVerifierCode 换一换
格式:DOCX , 页数:56 ,大小:461.92KB ,
资源ID:11982621      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11982621.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《计算机软件技术基础》课后题概论.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《计算机软件技术基础》课后题概论.docx

1、计算机软件技术基础课后题概论数据结构习题答案第一节 概 论一、选择题1要求同一逻辑结构的所有数据元素具有相同的特性,这意味着( )。A数据元素具有同一的特点 B不仅数据元素包含的数据项的个数要相同,而且对应数据项的类型要一致 C每个数据元素都一样 D数据元素所包含的数据项的个数要相等2数据结构是一门研究非数值计算的程序设计问题中计算机的( (1) )以及它们之间的( (2) )和运算的学科。(1) A操作对象 B计算方法 C物理存储 D数据映像(2) A结构 B关系 C运算 D算法3数据结构被形式地定义为(D,R),其中D是( (1) )的有限集合,R是D上( (2) )的有限集合。 (1)

2、A算法 B数据元素 C数据操作 D逻辑结构 (2)A操作 B映像 C存储 D关系4在数据结构中,从逻辑上可以把数据结构分为( )。A动态结构和静态结构 B紧凑结构和非紧凑结构 C线性结构和非线性结构 D内部结构和外部结构5线性表的顺序存储结构是一种( )的存储结构。A随机存取 B顺序存取 C索引存取 DHash存取6算法分析的目的是( )。A找出数据结构的合理性 B研究算法中的输入和输出的关系 C分析算法的效率以求改进 D分析算法的易懂性和文档性7计算机算法指的是( (1) ),它必须具备输入、输出和( (2) )等五个特征。 (1) A计算方法 B排序方法 C解决某一问题的有限运算序列 D调

3、度方法 (2) A可行性、可移植性和可扩充性 B可行性、确定性和有穷性 C确定性,有穷性和稳定性 D易读性、稳定性和安全性8线性表若采用链表存储结构,要求内存中可用存储单元的地址( )。A必须是连续的 B部分必须是连续的 C一定是不连续的 D连续不连续都可以9在以下的叙述中,正确的是( )。A线性表的线性存储结构优于链式存储结构 B二维数组是它的每个数据元素为一个线性表的线性表 C栈的操作方式是先进先出 D队列的操作方式是先进后出10根据数据元素之间关系的不同特性,以下四类基本的逻辑结构反映了四类基本的数据组织形式,其中解释错误的是( )。A集合中任何两个结点之间都有逻辑关系但组织形式松散 B

4、线性结构中结点按逻辑关系依次排列形成一条“锁链” C树形结构具有分支、层次特性,其形态有点像自然界中的树 D图状结构中的各个结点按逻辑关系互相缠绕,任何两个结点都可以邻接11以下说法正确的是( )。A数据元素是数据的最小单位 B数据项是数据的基本单位 C数据结构是带有结构的各数据项的集合 D数据结构是带有结构的数据元素的集合二、判断题1数据元素是数据的最小单位。2数据结构是带有结构的数据元素的集合。3数据结构、数据元素、数据项在计算机中的映像分别称为存储结构、结点、数据域。4数据项是数据的基本单位。5数据的逻辑结构是指各数据元素之间的逻辑关系,是用户按使用需要建立的。6数据的物理结构是数据在计

5、算机中实际的存储形式。7算法和程序没有区别,所以在数据结构中二者是通用的。8顺序存储结构属于静态结构,链式存储结构属于动态结构。三、填空题1所谓数据的逻辑结构指的是数据元素之间的_。2,数据结构是相互之间存在一种或多种特定关系的数据元素的集合,它包括三方面的内容_ 、 、 _。3数据的逻辑结构包括_ _、_ _、_ _和_ _四种类型。4在线性结构中,开始结点_ _前驱结点,其余每个结点有且只有_ _个前驱结点。5在树形结构中,根结点只有_ _,其余每个结点有且只有_ _前驱结点;叶结点没有_ _结点,其余每个结点的后继结点可以有_ _6在图形结构中,每个结点的前驱结点和后继结点可以有_ _。

6、7算法的五个重要特性是_ _、_ _、_ _、_ _、_ _。8下列程序段的时间复杂度是_ _。 for (i=1;i=n;i+) Ai,i=0;9下列程序段的时间复杂度是_ _。 S=0; for(i=1;i=n;i+) for(j=1;j=n;j+) s=s+Bi,j; sum=s;10存储结构是逻辑结构的_ _实现。11从数据结构的观点看,通常所说的“数据”应分成三个不同的层次,即_ _、_ _和_ _。12根据需要,数据元素又被称为_ _、_ _、_ _或_ _。13通常,存储结点之间可以有_ _、_ _、_ _、_ _四种关联方式,称为四种基本存储方式。14通常从_ _、_ _、_

7、_、_ _等几方面评价算法(包括程序)的质量。15一个算法的时空性能是指该算法的_ _和_ _,前者是算法包含的_ _,后者是算法需要的_ _。16在一般情况下,一个算法的时间复杂度是_ _的函数。17常见时间复杂度的量级有:常数阶O(_ _)、对数阶O(_ _)、线性阶O(_ _)、平方阶O(_ _)和指数阶O(_ _)。通常认为,具有指数阶量级的算法是_ _的。18数据结构的基本任务是数据结构的_ _和_ _。19数据对象是性质相同的_ _的集合。20抽象数据类型是指一个_ _以及定义在该模型上的一组操作。四、应用题1分析下列程序段的时间复杂度。 i=1; WHILE (i=n) i=i*

8、2; _ _2叙述算法的定义及其重要特性。3简述下列术语:数据,数据元素,数据结构,数据对象。4逻辑结构与存储结构是什么关系?5将数量级210,n,n2,n3,nlog2n,log2n,2n,n!,(23)n,n23按增长率进行排列。6设有数据逻辑结构为:D=k1,k2,k3,k9,R=,画出这个逻辑结构的图示,并确定相对于关系R,哪些结点是开始结点,哪些结点是终端结点?7设有如图1.1所示的逻辑结构图,给出它的逻辑结构,并说出它是什么类型的逻辑结构。8分析下列程序的时间复杂度(设n为正整数)。 (1)int rec(int n) if(n=1)return(1); else return(n

9、*rec(n-1); (2)x=91;y=100; While (y0) if(x10) y-; (3)i=1;j=0; while(i+jj)j+; else i+; (4)x=n;y=0;while(x=(y+1)*(y+1) y+;答: 9设n为正数。试确定下列各程序段中前面加记号的语句的频度: (1)i=1;k=0; while(i=n-1) k+=10*i; i+; ) (2) k=0; for(i=1;i=n;i+) for(j=i;jnext=NULL Chead-next=head Dhead!=NULL10非空单循环链表head的尾结点*p满足( )。 Ap-next=NUL

10、L Bp=NULL Cp-next=head Dp=head11在双循环链表的*p结点之后插入*s结点的操作是( )。 Ap-next=s;s-prior=p;p-next-prior=s;s-next=p-next; Bp-next=s;p-next-prior=s;s-prior=p:s-next=p-next; Cs-prior=p;s-next=p-next;p-next=s;p-next-prior=s; Ds-prior=p;s-next=p-next;p-next-pror=s;p-next=s;12. 在一个单链表中,已知*q结点是*p结点的前驱结点,若在*q和*p之间插入结点

11、*s,则执行( )。 As-next=p-next;p-next=s; Bp-next=s-next;s-next=p; Cq-next=s; s-next=p; Dp-next=s; s-next=q;13. 在一个单链表中,若*p结点不是最后结点。在*p之后插入结点*s,则执行( )。 As-next=p;p-next=s; Bs-next=p-next;p-next=s; Cs-next=p-next; p=s; Dp-next=s; s-next=p;14. 若某线性表中最常用的操作是取第i个元素和找第i个元素的前驱元素,则采用( )存储方式最节省时间。 A顺序表 B. 单链表 C双链

12、表 D单循环链表15设rear是指向非空带头结点的单循环链表的尾指针,则删除表头结点的操作可表示为( )。 Ap=rear;rear=rear-next; free(p) Brear=rear-next;free(rear); Crear=rear-next-next; free(rear); Dp=rear-next-next;rear-next-next=p-next;free(p);16在一个单链表中,若删除*p结点的后继结点,则执行( )。 Aq=p-next;p-next=q-next;free(q); Bp=p-next;p-next=p-next-next;free(p); Cp

13、-next=p-next;free(p-next); Dp=p-next-next;free(p-next);17设指针p指向双链表的某一结点,则双链表结构的对称性可用( )式来刻画。 Ap-prior-next-=p-next-next Bp-prior-prior=p-next-prior Cp-prior-next-=p-next-prior Dp-next-next=p-prior-prior18在循环链表中,将头指针改设为尾指针rear后,其头结点和尾结点的存储位置分别是( )。 Arear和rear-next-next Brear-next和rear Crear-next-next

14、和rear Drear和rear-next19循环链表的主要优点是( )。 A不再需要头指针了 B已知某个结点的位置后,容易找到它的直接前驱 C在进行插入、删除操作时,能更好地保证链表不断开 D从表中任一结点出发都能扫描到整个链表20在线性表的下列存储结构中,读取元素花费时间最少的是( )。 A单链表 B双链表 C循环链表 D顺序表二、判断题1顺序存储的线性表可以随机存取。2顺序存储的线性表的插入和删除操作不需要付出很大的代价,因为平均每次操作只有近一半的元素需要移动。3线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此是属于同一数据对象。4在线性表的顺序存储结构中,

15、逻辑上相邻的两个元素在物理位置上不一定相邻。5在线性表的链式存储结构中,逻辑上相邻的元素在物理位置上不一定相邻。6在单链表中,可以从头结点开始查找任何一个元素。7线性表的链式存储结构优于顺序存储结构。8在线性表的顺序存储结构中,插入和删除元素时,移动元素的个数与该元素的位置有关。9在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构。10顺序存储方式只能用于存储线性结构。三、填空题1为了便于讨论,有时将含n(n0)个结点的线性结构表示成(a1,a2,an),其中每个ai代表一个_结点_。a1称为_ _结点,an称为_ _结点,i称为ai在线性表中的_ _。对任

16、意一对相邻结点ai、ai+1(1inext=q-next;free(q); 6非空的单循环链表head的尾结点(由指针p所指)满足_ _ _。7rear是指向非空带头结点的单循环链表的尾指针,则删除起始结点的操作可表示为_ _;q=p-next;p-next=q-next;free(q);_。8对于一个具有n个结点的单链表,在p所指结点后插入一个结点的时间复杂度为_ _,在给定值为x的结点后插入新结点的时间复杂度为_ _。9单链表表示法的基本思想是用_ _表示结点间的逻辑关系。10在顺序表中插入或删除一个元素,平均需要移动_ _元素,具体移动的元素个数与_ _有关。11在一个长度为n的向量的第

17、i(1in+1)个元素之前插入一个元素时,需向后移动_ _个元素。12在一个长度为n的向量中删除第i(1in)个元素时,需向前移动_ _个元素。13在双链表中,每个结点有两个指针域,一个指向_ _,另一个指向_ _。14在一个带头结点的单循环链表中,p指向尾结点的直接前驱,则指向头结点的指针head可用p表示为head=_ _。15设head指向单链表的表头,p指向单链表的表尾结点,则执行p-next=head后,该单链表构成_ _。16在单链表中,若p和s是两个指针,且满足p-next与s相同,则语句p-next=s-next的作用是_ _s指向的结点。17设r指向单循环链表的最后一个结点,

18、要在最后一个结点之后插入s所指的结点,需执行的三条语句是_ _ ;r-next=s;r=s;18在单链表中,指针p所指结点为最后一个结点的条件是_ _ _。19在双循环链表中,若要在指p所指结点前插入s所指的结点,则需执行下列语句:s-next=p; s-prior=p-prior;_ _ _=s;p-prior=s;20在单链表中,若要在p所指结点之前插入s所指的结点,可进行下列操作: s-next=_ _ _ _; p-next=s; temp=p-data; p-data=_ _; s-data=_ _ _;四、应用题1描述以下三个概念的区别:头指针,头结点,首元结点(第一个元素结点)。

19、答: 2何时选用顺序表,何时选用链表作为线性表的存储结构为宜?答: 3在顺序表中插入和删除一个结点需平均移动多少个结点?具体的移动次数取决于哪两个因素?答: 4为什么在单循环链表中设置尾指针比设置头指针更好?答: 5双链表和单循环链表中,若仅知道指针p指向某个结点,不知道头指针,能否将结点*p 从相应的链表中删除?若可以,其时间复杂度各为多少?答: 6下列算法的功能是什么? LinkList *testl(LinkList *L) /L是无头结点的单链表 LinkList *q,*p; if(L&L-next) q=L; L=L-next; p=L; while(p-next) p=p-nex

20、t; p-next=q; q-next=NULL;return L;答: 7如果有n个线性表同时共存,并且在处理过程中各表的长度会发生动态变化,线性表的总长度也会自动地改变。在此情况下,应选择哪一种存储结构?为什么?答: 8若线性表的总数基本稳定,且很少进行插入、删除操作,但要求以最快的方式存取线性表的元素,应该用哪种存储结构?为什么?答:五、算法设计题假设算法中用到的顺序表和链表结构如下:#define maxsize 100;Typedef struct node1 datatype datamaxsize; int length SeqList;Typedef struct node2

21、datatype data; struct node2 *next LinkedList ;1试用顺序表作为存储结构,实现将线性表(a0,a1,a2,an-1)就地逆置的操作,所谓“就地”是指辅助空间为O(1)。答:(1)顺序表的就地逆置 (2)链表的就地逆置 2设顺序表L是一个递增(允许有相同的值)有序表,试写一算法将x插入L中,并使L仍为一个有序表。答: 3.设单链表L是一个递减有序表,试写一个算法将x插入其中后仍保持L的有序性。答:4. 试写出在不带头结点的单链表的第i个元素之前插入一个元素的算法。答:5设A、B是两个线性表,其表中元素递增有序,长度分别为m和n。试写一算法分别以顺序存储

22、和链式存储将A和B归并成一个仍按元素值递增有序的线性表C。答:6设指针la和lb分别指向两个不带头结点的单链表的首结点,设计从表la中删除第i个元素起共len个元素,并将这些元素插入到lb中第j个结点之前的算法。7单链表L是一个递减有序表,试写一高效算法,删除表中值大于min且小于max的结点(若表中有这样的结点),同时释放被删结点空间,这里min和max是两个给定的参数。8编写一个算法将一个头结点指针为pa的单链表A分解成两个单链表A和B,其头结点指针分别为pa和pb,使得A链表中含有原链表A中序号为奇数的元素,而B链表中含有原链表A中序号为偶数的元素,且保持原来的相对顺序。9假设以两个元素

23、值递增有序排列的线性表A、B分别表示两个集合,要求另辟空间构造一个线性表C,其元素为两集合的交集,且表C中的元素值也递增有序排列。用顺序表实现并写出C的算法。11假设在长度大于1的单循环链表中,既无头结点也无头指针。s为指向链表中某个结点的指针,试编写算法删除结点*s的直接前驱结点。12计算带头结点的循环链表的结点个数。13已知由单链表表示的线性表中,含有三类字符的数据元素(如:字母字符、数字字符和其他字符),试编写算法构造三个以循环链表表示的线性表,使得每个表中只含有同一类的字符,且利用原表中的结点空间作为这三个表的结点空间,头结点可另辟空间。14、己知A、B和C为三个递增有序的线性表,现要

24、求对A表进行如下操作:删去那些既在B表中出现又在C表中出现的元素。试对顺序表编写实现上述操作的算法(注:题中未特别指明同一表中的元素值各不相同)。15双循环链表中,设计满足下列条件的算法。 (1)在值为x的结点之前插入值为y的结点。(2)删除值为x的结点。16设有一个双循环链表,其中有一结点的指针为p,编写算法将p与其右边的一个结点进行交换。17设有一个双链表,每个结点中除有prior、data和next三个域外,还有一个可访问频度域freq,在链表启用之前,其初始值均为0。每当链表进行一次LocateNode(L,x)操作时令元素值为x的结点中freq域的值加l,并调整表中结点的次序,使其按

25、访问频度的递减次序排列,以便使频繁访问的结点总是靠近表头。试写一符合上述要求的LocateNode操作的算法。18给出用单链表存储多项式的结构,并编写一个按指数值递增次序输入所产生的多项式链表的过程。19根据上题的多项式链表结构,编写一个过程实现两个多项式相加的运算。20约瑟夫环问题:任给正整数n、k,按下述方法可得排列1,2,n的一个置换:将数字l,2,n环形排列,按顺时针方向从1开始计数;计满k时输出该位置上的数字(并从环中删去该数字),然后从下一个数字开始继续计数,直到环中所有数字均被输出为止。例如,n=10、k=3时,输出的置换是3,6,9,2,7,1,8,5,10。分别以数组和以不带头结点的、已知尾指针的单循环链表为存储结构解决上述问题。第三节 栈和队列一、选择题1设有一顺序栈s,元素s1,s2,s3,s4,s5,s6依次入栈,如果6个元素出栈的顺序是s2,s3,s4,s6,s5,s1,则栈的容量至少应该是( )。 A2 B3 C5 D62若一个栈的输入序列是a、b、c,则通过入栈、出栈操作可能得到a、b、c的不同排列个数为( )。 A4 B5 C6

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1