第二次作业学生1

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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,则应进行的操作

相关文档
最新文档