线性结构练习题
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
10,向一个栈顶指针为HS的链栈中插入一个s结点,则执行____. A HS->next=s B s->next=HS->next;hs->next=s
C s->next->HS;HS=s D s->next=HS;hs=HS->next;
11,编写一个算法,利用队列和栈的基本运算将制定队列中的内容 进行逆转: 解:假设是循环队列,建立一个临时栈tmpst,将制定队列qu中的所 有元素出队并入栈到tmpst中,这样队列为空,再将tmpst中的所有 元素出栈并入队到qu中. void reverse(queue &qu) {elemtype x; statck tmpst; Initstack(tmpst); While(!queueempty(qu)) { dequeue(qu,x); push(ympst,x); } While(!statckempty(tmpst)) {po(tmpst,x); enqueue(qu,x); }}
(2)A 108 B 114 (3)A M[8][5]
13,将递归算法转化成非递归算法,通常需要使用: A栈 B 队列 C 链表 D 树
�
12,二维数组M的成员是6个字符组成的字符串,行标的范围从0到8, 列标的范围从1到10,则存放M至少需要__(1)___个字节;M的第 8列和第5行共占用__(2)___个字节.若M按行优先方式存储,元 素M[8][5]的起始地址与M按列优先存储时的__(3)____元素的起 始地址一致. (1)A 90 B 180 C 240 C 54 B M[3][10] D 540 D 60 C M[5][8] D M[0][9]
1,下列语句中x++的时间复杂度为: for(i=0;i<n;i++) { y=y+1; for(j=0;j<=2*n;j++) x++; } 2,下列程序段的时间复杂度为: i=1; while(i<=n) i=i*2;
3,下列order函数的时间复杂度为: 该程序是一个递归的排序算法, order(int j,int m) 其时间复杂度为T(n)=T(n-1)+n-1 { int i,temp; if(j<m) { for(i=j;i<=m;i++) if(a[i]<a[j]) { temp=a[i];a[i]=a[j];a[j]=temp;} j++; order(j,m); } } 则 T(n)=T(n-1)+n-1 =T(n-2)+n-2+n-1 =…=0+1+2+…+n-1 =n*(n-1)/2 故时间复杂度为O(n*n)
7,在一个长度为n的单链表中,设有头和尾两个指针,执行___操 作与链表的长度有关. A 删除单链表的第一个元素 B 删除链表中的最后一个元素
C 在单链表第一个元素前插入一个新元素 D 在单链表最后一个元素后插入一个新元素 8,一个栈的进栈序列是a,b,c,d,e,则栈的不可能出栈序列是: A edcba B decba C dceab D abcde 9,若已知一个栈的进栈序列是1,2,3…n,其输出序列为p1,p2,…pn,若 p1=n,则pi为: Ai B n-i C n-i+1 D 不确定
4,不带头结点的单链表head为空的判定条件是: A head=NULL B head->next==NULL
C head->next==head D head!=NULL 5,带头结点的单链表head为空的判定条件是: A head==NULL B head->next==NULL
C head->next==head D head!=NULL 6,在循环双链表的p所指结点之前插入s所指结点的操作为: A p->prior=s;s->next=p;p->prior->next=s;s->prior=p->prior B p->prior=s;p->prior->next=s;s->next=p;s->prior=p->prior C s->next=p;s->prior=p->prior;p->prior=s;p->prior->next=s; D s->next=p;s->prior=p->prior;p->prior->next=s;p->prior=s;