1、j+) x=x+1;A) O(2n)B)O(n)CO(n2)DO(log2n)7下面的程序段中, n为正整数,则最后一行的语句频度在最坏情况下是(D) for(i=n-1;i=1;i-) for(j=1;=i;j+) if (AjAj+1) Aj与Aj+1对换;A. O(n)B) O(nlog2n)C) O(n3)D) O(n2) 【答案】D1.2填空题2. 对于给定的n个元素,可以构造出的逻辑结构有_,_, _,_四种。【答案】(1)集合 (2)线性结构 (3)树形结构(4)图状结构或网状结构4数据结构中评价算法的两个重要指标是_。【答案】算法的时间复杂度和空间复杂度。5. 数据结构是研讨数
2、据的_和_,以及它们之间的相互关系,并对与这种结构定义相应的_,设计出相应的_。(1)逻辑结构(2)物理结构(3)操作(运算)(4)算法。6一个算法具有5个特性:_、_、_,有零个或多个输入、有一个或多个输出。(1)有穷性(2)确定性(3)可行性。9已知如下程序段for(i=n;0;i-)语句1 x=x+1;语句2 for(j=n;jj-)语句3 y=y+1; 语句4语句1执行的频度为_;语句2执行的频度为_;语句3执行的频度为_;语句4执行的频度为_。(1)n+1 (2)n (3)n(n+3)/2 (4)n(n+1)/210在下面的程序段中,对的赋值语句的频度为_(表示为n的函数)for(i
3、=0;for(j=0;i;for(k=0;kj;k+)=+delta;【答案】1+(1+2)+(1+2+3)+(1+2+n)=n(n+1)(n+2)/6 , O(n3)11.下面程序段中带下划线的语句的执行次数的数量级是_。i=1; while(i1) sum=1;for (i=0;sumprior=q; q-next=p; p-prior-next=q;prior=p-prior;B) q-prior=q-next;C) q-D) p-4在一个具有n个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是( )A)O(nlog2n)B) O(1)C) O(n)D) O(n2)5 在一个
4、以 h 为头指针的单循环链中,p 指针指向链尾结点的条件是( )A)p-next=NULLB) p-next=hC)p-next-next=hD) p-data=-16对于一个具有n个结点的线性表,建立其单链表的时间复杂度是() A)O(n) B) O(1) C)O(nlog2n) D) O(n2)8在双向链表存储结构中,删除p所指的结点时须修改指针()next=p-nextp-B)p-priorp-prior=pp-nextD)p-priorp-9线性表采用链式存储时,其元素地址()A)必须是连续的B)一定是不连续的C)部分地址是连续的D)连续与否均可2.2填空题1线性表L=(a1,a2,a
5、n)用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是_。(n-1)/22在单链表中设置头结点的作用是_。【答案】主要是使插入和删除等操作统一,在第一个元素之前插入元素和删除第一个结点不必另作判断。另外,不论链表是否为空,链表头指针不变。3线性表的顺序存储是通过_来反应元素之间的逻辑关系,而链式存储结构是通过_来反应元素之间的逻辑关系。(1)数据元素的前后顺序 (2)元素中的指针4当对一个线性表经常进行的是存取操作,而很少进行插入和删除操作时,则采用_存储结构最节省时间,相反当经常进行插入和删除操作时,则采用_存储结构最节省时间。(1)顺序 (2)链式5对于一个
6、具有n个结点的单链表,在已知的结点*p后插入一个新结点的时间复杂度为_,在给定值为x的结点后插入一个新结点的时间复杂度为_。(1)O(1)(2)O(n)7. 对于双向链表,在两个结点之间插入一个新结点需修改的指针共_个,单链表为_个。(1)4 (2)28. 循环单链表的最大优点是_。【答案】从任一结点出发都可访问到链表中每一个元素。9若要在一个不带头结点的单链表的首结点*p结点之前插入一个*s结点时,可执行下列操作: s-next=_; p-next=s; t=p-data;data= _; data=_;(1)p-next (2)s-data(3) t10某线性表采用顺序存储结构,每个元素占
7、据4个存储单元,首地址为100,则下标为11的(第12个)元素的存储地址为_。【答案】14411带头结点的双循环链表L中只有一个元素结点的条件是_。【答案】L-next=L2.3 判断题1取线性表的第i个元素的时间同i的大小有关()【答案】2线性表的特点是每个元素都有一个前驱和一个后继()3 顺序存储方式的优点是存储密度大,且插入、删除运算效率高()4线性表采用链表存储时,结点的存储空间可以是不连续的()【答案】5链表是采用链式存储结构的线性表,进行插入、删除操作时,在链表中比在顺序存储结构中效率高()6顺序存储方式只能用于存储线性结构()【解析】线性结构、树型结构和图状结构均可用顺序存储表示
8、。9顺序存储结构的主要缺点是不利于插入或删除操作()10顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好()2.4程序设计题1设顺序表va中的数据元素递增有序。试设计一个算法,将x插入到顺序表的适当位置上,以保持该表的有序性。【算法源代码】void Insert_SqList(SqList va,int x)/*把x插入递增有序表va中*/ int i; if(va.length MAXSIZE) return; for(i=va.length-1;va.elemix&=0; va.elemi+1=va.elemi; va.elemi+1=x; va.length+;/*Insert_SqList*/ 2设 A=(a1,a2,am) 和 B=(b1,b2,bn)均为顺序表,试设计一个比较A,B大小的算法(请注意:在算法中,不要破坏原表A和B)。【算法分析】比较顺序表A和B,并用返回值表示结果,值为1,表示AB;值为-1,表示A值为0,表示A=B。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1