您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据挖掘与识别 > 数据结构形考作业答案
形考作业一题目1把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为()。选择一项:A.逻辑结构B.给相关变量分配存储单元C.算法的具体实现D.物理结构题目2下列说法中,不正确的是()。选择一项:A.数据可有若干个数据元素构成B.数据元素是数据的基本单位C.数据项是数据中不可分割的最小可标识单位D.数据项可由若干个数据元素构成题目3一个存储结点存储一个()。选择一项:A.数据结构B.数据类型C.数据项D.数据元素题目4数据结构中,与所使用的计算机无关的是数据的()。选择一项:A.物理结构B.逻辑结构C.物理和存储结构D.存储结构题目5下列的叙述中,不属于算法特性的是()。选择一项:A.有穷性B.可行性C.可读性D.输入性题目6正确获得分中的分A.研究算法中的输入和输出的关系B.分析算法的易懂性和文档性C.分析算法的效率以求改进D.找出数据结构的合理性题目7算法指的是()。选择一项:A.排序方法B.解决问题的计算方法C.计算机程序D.解决问题的有限运算序列题目8算法的时间复杂度与()有关。选择一项:A.所使用的计算机B.数据结构C.算法本身D.计算机的操作系统题目9设有一个长度为n的顺序表,要在第i个元素之前(也就是插入元素作为新表的第i个元素),插入一个元素,则移动元素个数为()。选择一项:A.n-i+1B.n-i-1C.n-iD.i题目10设有一个长度为n的顺序表,要删除第i个元素移动元素的个数为()。选择一项:A.n-iB.n-i-1C.n-i+1D.i题目11在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用语句()。选择一项:A.p-next=q-nextB.p=q-nextC.q-next=NULLD.p-next=q题目12在一个单链表中p所指结点之后插入一个s所指的结点时,可执行()。选择一项:A.p=s-nextB.p-next=s;s-next=p-nextC.p-next=s-next;D.s-next=p-next;p-next=s;题目13非空的单向循环链表的尾结点满足()(设头指针为head,指针p指向尾结点)。选择一项:A.p==headB.p==NULLC.p-next==headD.p-next==NULL题目14链表不具有的特点是()。选择一项:A.可随机访问任一元素B.插入删除不需要移动元素C.不必事先估计存储空间D.所需空间与线性表长度成正比题目15带头结点的链表为空的判断条件是()(设头指针为head)。选择一项:A.head-next==NULLB.head-next==headC.head==NULLD.head!=NULL题目16在一个长度为n的顺序表中为了删除第5个元素,由第6个元素开始从后到前依次移动了15个元素。则原顺序表的长度为()。选择一项:A.21B.19C.20D.25题目17有关线性表的正确说法是()。选择一项:A.表中的元素必须按由小到大或由大到下排序B.除了一个和最后一个元素外,其余元素都有一个且仅有一个直接前驱和一个直接后继C.线性表至少要求一个元素D.每个元素都有一个直接前驱和一个直接后继题目18向一个有127个元素的顺序表中插入一个新元素,并保持原来的顺序不变,平均要移动()个元素。选择一项:A.8B.7C.63D.题目19一个顺序表第一个元素的存储地址是90,每个元素的长度为2,则第6个元素的地址是()。选择一项:A.102B.98C.100D.106题目20在双向循环链表中,在p所指的结点之后插入指针f所指的新结点,其操作步骤是()。选择一项:A.f-prior=p;f-next=p-next;p-next=f;p-next-prior=f;B.p-next=f;f-prior=p;p-next-prior=f;f-next=p-next;C.f-prior=p;f-next=p-next;p-next-prior=f;p-next=f;D.p-next=f;p-next-prior=f;f-prior=p;f-next=p-next;二、填空题(每小题2分,共30分)题目21在一个长度为n的顺序存储结构的线性表中,向第i(1£i£n+1)个元素之前插入新元素时,需向后移动回答个数据元素。题目22从长度为n的采用顺序存储结构的线性表中删除第i(1£i£n+1)个元素,需向前移动回答个元素。题目23数据结构按结点间的关系,可分为4种逻辑结构:_____集合_________、____线性结构、__________、____树形结构__________、____图状结构__________。题目24数据的逻辑结构在计算机中的表示称为_____存储结构__________或______物理结构_________。题目25除了第1个和最后一个结点外,其余结点有且只有一个前驱结点和后继结点的数据结构为回答,每个结点可有任意多个前驱和后继结点数的结构为回答。答案:线性结构,非线性结构题目26数据结构中的数据元素存在多对多的关系称为回答结构。题目27数据结构中的数据元素存在一对多的关系称为回答结构。题目28数据结构中的数据元素存在一对一的关系称为回答结构。题目29要求在n个数据元素中找其中值最大的元素,设基本操作为元素间的比较。则比较的次数和算法的时间复杂度分别为__n-1___________和__O(n)___________。题目30在一个单链表中p所指结点之后插入一个s所指结点时,应执行回答和p-next=s;的操作。题目31设有一个头指针为head的单向循环链表,p指向链表中的结点,若p-next=回答,则p所指结点为尾结点。题目32在一个单向链表中,要删除p所指结点,已知q指向p所指结点的前驱结点。则可以用操作回答。正确答案是:q-next=p-next;题目33设有一个头指针为head的单向链表,p指向表中某一个结点,且有p-next==NULL,通过操作回答,就可使该单向链表构形成单向循环链表。正确答案是:p-next=head;题目34单向循环链表是单向链表的一种扩充,当单向链表带有头结点时,把单向链表中尾结点的指针域由空指针改为回答;当单向链表不带头结点时,则把单向链表中尾结点的指针域由空指针改为指向回答。答案:头结点的指针、指向第一个结点的指针题目35线性链表的逻辑关系是通过每个结点指针域中的指针来表示的。其逻辑顺序和物理存储顺序不再一致,而是一种回答存储结构,又称为回答。答案:链式、链表三、问答题(第1小题7分,第2小题8分)题目36简述数据的逻辑结构和存储结构的区别与联系,它们如何影响算法的设计与实现答:若用结点表示某个数据元素,则结点与结点之间的逻辑关系就称为数据的逻辑结构。数据在计算机中的存储表示称为数据的存储结构。可见,数据的逻辑结构是反映数据之间的固有关系,而数据的存储结构是数据在计算机中的存储表示。尽管因采用的存储结构不同,逻辑上相邻的结点,其物理地址未必相同,但可通过结点的内部信息,找到其相邻的结点,从而保留了逻辑结构的特点。采用的存储结构不同,对数据的操作在灵活性,算法复杂度等方面差别较大。题目37解释顺序存储结构和链式存储结构的特点,并比较顺序存储结构和链式存储结构的优缺点。答:顺序结构存储时,相邻数据元素的存放地址也相邻,即逻辑结构和存储结构是统一的,要求内存中存储单元的地址必须是连续的。优点:一般情况下,存储密度大,存储空间利用率高。缺点:(1)在做插入和删除操作时,需移动大量元素;(2)由于难以估计,必须预先分配较大的空间,往往使存储空间不能得到充分利用;(3)表的容量难以扩充。链式结构存储时,相邻数据元素可随意存放,所占空间分为两部分,一部分存放结点值,另一部分存放表示结点间关系的指针。优点:插入和删除元素时很方便,使用灵活。缺点:存储密度小,存储空间利用率低。四、程序填空题(每空1分,共15分)题目38下列是用尾插法建立带头结点的且有n个结点的单向链表的算法,请在空格内填上适当的语句。NODE*create1(n)/*对线性表(1,2,.....,n),建立带头结点的单向链表*/{NODE*head,*p,*q;inti;p=(NODE*)malloc(sizeof(NODE));head=p;q=p;p-next=NULL;for(i=1;i=n;i++){p=(NODE*)malloc(sizeof(NODE));回答;回答;回答;回答;}return(head);}题目39下列是用头插法建立带头结点的且有n个结点的单向链表的算法,请在空格内填上适当的语句。NODE*create2(n)/*对线性表(n,n-1,.....,1),建立带头结点的线性链表*/{NODE*head,*p,*q;inti;p=(NODE*)malloc(sizeof(NODE));回答;p-next=NULL;回答;for(i=1;i=n;i++){p=(NODE*)malloc(sizeof(NODE));p-data=i;if(i==1)回答;else回答;回答;}return(head);}题目40下列是在具有头结点单向链表中删除第i个结点的算法,请在空格内填上适当的语句。intdelete(NODE*head,inti){NODE*p,*q;intj;q=head;j=0;while((q!=NULL)&&(ji-1))/*找到要删除结点的直接前驱,并使q指向它*/{回答;j++;}if(q==NULL)return(0);回答回答;free(p);return(1);}题目41下列是在具有头结点单向列表中在第i个结点之前插入新结点的算法,请在空格内填上适当的语句。intinsert(NODE*head,intx,inti){NODE*q,*p;intj;q=head;j=0;while((q!=NULL)&&(ji-1)){q=q-next;j++;}if(q==NULL)return(0);p=回答;p-data=x;回答正确正确答案是:p-next=q-next获得分中的分;回答;return(1);}形考任务2题目1若让元素1,2,3依次进栈,则出栈顺序不可能为()。选择一项:A.2,1,3B.3,1,2C.3,2,1题目2一个队列的入队序列是1,2,3,4。则队列的输出序列是()。选择一项:A.3,2,4,1B.1,2,3,4C.4,3,2,1D.1,4,3,2题目3向顺序栈中压入新元素时,应当()。选择一项:A.先存入元素,再移动栈顶指针B.先移动栈顶指针,再存入元素C.先后次序无关紧要D.同时进行题目4在一个栈顶指针为top的链栈中,将一个p指针所指的结点入栈,应执行()。选择一项:A.p-next=top;top=p;B.top-next=p;C.p-next=top-next;top=top-next;D.p-next=top-next;top-next=p;题目5在一个栈顶指针为top的链栈中删除一个结点时,用x保存被删结点的值,则执行()。选择一项:A.x=top-data;top=top-next;B.x=top-data;C.top=top-next;x=top-data;D.x=top;top=top-next;题目6判断一个顺序队列(最多元素为m)为空的条件是()。选择一项:A.rear==m-1B.front==rear+1C.front==rear题目7判断一个循环队列Q(最多元素为m)为满的条件是()。选择一项:A.Q-rear!=(Q-front+1)%mB.Q-front==Q-rearC.Q-front==(Q-rear+1)%mD.Q-front=Q-rear+1题目8判断栈满(元素个数最多n个)的条件是()。选择一项:A.top==0B.to
本文标题:数据结构形考作业答案
链接地址:https://www.777doc.com/doc-7145545 .html