第二次作业学生1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二次作业
一、选择题
1.在一个单链表中,若要在P所指向的结点之后插入一个新结点,则需要相继修改()个指针域的值.
A.1
B.2
C.3
D.4
2.在一个表头指针为ph的单链表中,若要向表头插入一个由指针p指向的结点,则应执行()操作。
A. ph=p; p->next=ph;
B. p->next=ph; ph=p;
C. p->next=ph; p=ph;
D. p->next=ph->next; ph->next=p;
3.在一个单链表HL中,若要删除由指针q所指向结点的后继结点(若存在的话),则执行()操作。
A. p=q->next; p->next=q->next;
B. p=q->next; q->next=p;
C. p=q->next; q->next=p->next;
D. q->next=q->next->next; q->next=q;
4.在一个带头结点的循环双向链表中,若要在指针p所指向的结点之前插入一个q指针所指向的结点,则需要对p->prior->next赋值为()。
A. q
B. p
C. p->next
D. p->prior
5. 在一个带头结点的循环双向链表中,若要删除指针p所指向的结点则执行()操作。
A. p->prior->next=p->next; p->next->prior=p->prior;
B. p->next->prior=p; p->next=p->next->next;
C. p->prior->next=p; p->next=p->next->prior;
D. p=p->next; p->prior->next=p->prior;
6.栈的插入和删除操作在()进行。
A. 栈顶
B. 栈底
C. 任意位置
D. 指定位置
8. 假定利用数组a[N]顺序存储一个栈,用top表示栈顶指针,用top==-1表示栈空,并已知栈未满,当元素x进栈时所执行的操作为()。
A.a[--top]=x
B.a[top--]=x
C.a[++top]=x
D.a[top++]=x
10.假定一个链式栈的栈顶指针用top表示,该链式栈为空的条件()。
A.top!=NULL;
B. top==top->next;
C. top== NULL;
D. top!= top->next;
11.假定一个链式栈的栈顶指针用top表示,当p所指向的结点进栈时,执行的操作为()。
A. p->next=top; top=top->next;
B. top=p; p->next=top;
C. p->next=top->next; top->next=p;
D. p->next=top; top=p;
12.若让元素1,2,3,4依次进栈,则出栈次序不可能出现()的情况。
A.3,2,1,4
B.2,1,4,3
C.4,3,2,1
D.1,4,2,3.
14.假定一个顺序循环队列的队首和队尾指针分别用f和r表示,则判断队空的条件为()。
A.f+1==r
B.r+1==f
C.f==0
D.f==r
15.假定一个顺序循环队列存储于数组a[N],其队首和队尾指针分别用f和r表示,则判断队满的条件为()。
A.(r-1)%N==f
B.(r+1)%N==f
C.(f-1)%N==r
D.(f+1)%N==r
17.假定一个链式队列的队首和队尾指针分别为front和rear,则判断队空的条件为()。
A.front==rear
B.front!=NULL
C.rear!=NULL
D.front==NULL
18.假定一个链式队列的队首和队尾指针分别为front和rear,每个结点结构为
当出列时所进行的操作为()。
A.front=front->next
B.rear=rear->next
C.front->next =rear;rear=rear->next
D.front=front->next;front->next =rear;
21.在一个长度为N的数组空间中,循环顺序存储着一个队列,该队列的队首和队尾指针分别用front和rear表示,则该队列中数组元素个数为()。
A.(rear-front)%N
B.(rear-front+N)%N
C.(rear+N)%N
D.(front+N)%N
22.二维数组A[12,10]采用行优先存储,每个数据元素占用4个存储单元,该数组的首地址(即A[0,0]的地址)为1200,则A[6,5]的地址为()。
A.1400
B.1404
C.1372
D.1460
23.有一个M×N的矩阵A,若采用行优先进行顺序存储,每个元素占用8个字节,则A ij(1≤i≤M,1≤j≤N)元素的相对字节地址(相对首元素地址而言)为()。
A.((i-1)×N+j)×8
B.((i-1)×N+j-1)×8
C.(i×N+j-1)×8
D.((i-1)×N+j+1)×8
24.有一个N×N的下三角矩阵A,若采用行优先进行顺序存储,每个元素占用k 个字节,则A ij(1≤i≤N,1≤j≤i)元素的相对字节地址(相对首元素地址而言)为()。
A.(i×(i+1)/2+j-1)×4
B.(i×i/2+j)×4
C.(i×(i-1)/2+j-1)×4
D.(i×(i-1)/2+j)×4
二﹑填空题
1.在____链表中,既可以通过设定一个头指针,也可以通过设定一个尾指针来确定它,即通过头指针或尾指针可以访问到该链表的每个结点。
2.在一个单链表中删除指针p所指向结点的后继结点时,需要把____的值赋给p->next指针域。
3.在一个单链表中指针p所指向结点的后面插入一个指针q所指向的结点时,首先把____的值赋给p->next,然后把____的值赋给p->next。
4.假定指向单链表中第一个结点的头指针为head,则像该单链表的表头插入指针
p所指向的新结点时,首先执行____赋值操作,然后执行____赋值操作。
5.访问一个顺序表和一个单链表中第i个元素的时间复杂度分别为____和____。
6.在一个带头结点的循环单链表中,在表头插入或删除与在其它位置插入和删除,其操作过程是否相同?________。
7.在一个双向链表中删除指针p所指向的结点时,需要对p->next->prior指针域赋值为____。
8.从一个栈删除元素时,首先取出____,然后再使____减一。
9.假定一个链栈的栈顶指针为top,每个结点包含值域data和指针域next,当p
所指向的结点入栈时,则首先执行____操作,然后执行____操作。
10.设元素a,b,c,d依次进栈,若要在输出端得到序列cbda,则应进行的操作