已知带头结点的链队列指针Q,则该队列做新元素结点s进队操作的语句是( )
A: Q->rear->next=s; Q->rear=s;
B: s->next=Q->front->next; Q->front->next=s;
C: Q->next=s;Q=s;
D: s->next=Q->next ;Q->next=s;
A: Q->rear->next=s; Q->rear=s;
B: s->next=Q->front->next; Q->front->next=s;
C: Q->next=s;Q=s;
D: s->next=Q->next ;Q->next=s;
举一反三
- 在一个单链表中,已知 q 是 p 的前趋结点,若在 q 和 p 之间插入结点 s ,则应当执行语句序列( )。 A: s -> next = p -> next; p -> next = s; B: s -> next = q -> next; p -> next = s; C: s -> next = q -> next; q -> next = s; D: q -> next = s; s -> next = p;
- 在一个长度大于2的单循环链表L中,P指针指向某结点,在P前插入S结点,要求在O(1)时间复杂度内完成,以下正确的是( )。 A: s->next=p->next;p->next=s; //将s结点插入到p之后t=s->data;s->data=p->data;p->data; //s结点和p结点的值互换 B: q=p->next;while(q->next!=p) q=q->next;s->next=p; q->next=s; C: q=p->next;while(q->next!=p) q=q->next;q->next=s; s->next=p; D: 在p结点前插入s结点,而且要求在O(1)内,无法实现。
- 删除单链表中指针p所指结点的语句序列为( )。 A: q=p->next; p->data=q->data; p->next=q->next; free(q); B: q=p->next; q->data=p->data; p->next=q->next; free(q); C: q=p->next; p->next=q->next; free(q); D: q=p->next; p->data=q->data; free(q);
- 在一个双链表中,在P结点之后插入结点q的操作是()。 A: q->prior=p; p->next=q; p->next->prior=q;q->next=p->next; B: q->next=p->next; p->next->prior=q;p->next=q;q->prior=p; C: p->next=q;q->prior=p;q->next=p->next;p->next->prior=q; D: q->prior=p;p->next=q;q->next=p->next;p->next->prior=q;
- 在一个单链表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;