中国石油大学软件技术基础_复习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
线性表的习题
1.下述哪一条是顺序存储结构的优点?
A.插入运算方便
B.可方便地用于各种逻辑结构的存储表示
C.存储密度大
D.删除运算方便
2.下面关于线性表的叙述中,错误的是:
A.线性表采用顺序存储,必须占用一片连续的存储单元
B.线性表采用顺序存储,便于进行插入和删除操作
C.线性表采用链式存储,不必占用一片连续的存储单元
D.线性表采用链式存储,便于插入和删除操作。
3.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用_______存储方式最节省运算时间。
A.单链表
B.仅有头指针的单循环链表
C.双链表
D.仅有尾指针的单循环链表
4.链表不具有的特点是:
A.插入、删除不需要移动元素
B.可随机访问任一元素
C.不必事先估计存储空间
D.所需空间与线性长度成正比
5.在n个节点的线性表的数组实现中,算法的时间复杂度是O(1) 的操作是:
A.访问第i个结点和求第i个结点的直接前驱
B.在第i个节点后插入一个新节点 O(n)
C.删除第i个节点 O(n)
D.以上都不对
6.在一个以h为头的单循环链表中,p指针指向链尾的条件是:
A.p->next==h
B.p->next==null
C.p->next->next==h
D.p->data==-1
7.在非空双向循环链表中q所指的结点前插入一个由p所指的链结点的过程依次为:rlink(p)←q; llink(p)←llink(q);llink(q)←p;___________
A.rlink(q)←p;
B.rlink(llink(q))←p;
C.rlink(llink(p))←p;
D.rlink(rlink(p)) p;
8.在双向链表指针p的结点前插入一个指针q的结点的操作是:
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=q;p->llink=q;p->llink=q;
9.在双向链表存储结构中,删除p所指的结点时需要修改指针_______。
A. p->llink->rlink=p->rlink; p->rlink->llink=p->llink;
B. p->llink=p->llink->llink; p->llink->rlink=p;
C. p->rlink->llink=p; p->rlink=p->rlink->rlink;
D. p->rlink=p->llink->llink; p->llink=p->rlink->rlink;
填空题
1.在单链表中设置头结点的作用________________。
2.链表存储的特点是利用________来表示数据元素之间的逻辑关系;顺序存储的线性表示
用_______来表示数据元素之间的逻辑关系。
3.循环单链表的最大优点是________________。
4.带头结点的双循环链表L为空表的条件是___________。L->rlink==L && L->llink==L
5.带头结点的双向循环链表L中含有一个结点的条件是:
__________________。
6.线性表L=(a1,a2,…,an)用数组表示,假定删除表中任一元素的概率相同,则删除一个
元素平均需要移动元素的个数是______。(n-1)/2
7.在一个长度为n的顺序表中第i个元素之前插入一个元素时,需要向后移动________个
元素。n-i+1
栈和队列的习题
2.8 设栈S 和队列Q 的初始状态为空,元素e1,e2,e3,e4,e5,e6依次通过栈S ,一个元素出站后即进入队列Q ,若出队的顺序为e2,e4,e3,e6,e5,e1,则栈S 的容量至少应该为多少?
解:栈S 的容量至少应该为3。
2.9 写出计算循环链表长度的算法。
解:设置一个变量len=0;循环编列循环链表,直到链表结束,len++。
2.5 设循环队列的容量为70(序号1-70),现经过一系列的入队与退队运算后,有: (1) front=14,rear=21 (2) front=23,rear=12
问在这两种情况下,循环队列中各有多少个元素? 解:(1)元素个数=21-14=7 (2)元素个数=12+70-23=59
2.6 试用图表示在表达式A*(B-D)/T+C**(E*F)执行过程中运算符栈和操作数栈的变化情况。
运算符栈
操作数栈
运算符栈
操作数栈
2.20 设树T 的度为4,其中度为1,2,3,4的结点个数分别为4,3,2,1。问T 中有多少个叶子结点?
解:设叶子结点个数为x 个。结点个数=度的总和+1 X+4+3+2+1=(1*4+2*3+3*2+4*1)+1=21 解方程得:x=11
2.21 已知某二叉树的前序序列为DBACFEG ,中序序列为ABCDEFG 。请画出该二叉树,并写出二叉树的后序序列。
后序序列为:ACBEGFD
运算符栈
操作数栈 运算符栈
操作数栈