若已建立如下图所示的单链表结构: 且该链表结构中,指针p和q分别指向图中所示节点,则不能将q所指的节点插入到链表末尾来构成单向链表的语句是( )。

admin2013-08-15  29

问题 若已建立如下图所示的单链表结构:

    且该链表结构中,指针p和q分别指向图中所示节点,则不能将q所指的节点插入到链表末尾来构成单向链表的语句是(    )。

选项 A、p=p->next;q->next=p;p->next=q;
B、p=p->next;q->next=p->next;p->next=q;
C、q->next=NULL;p=p->next;p->next=q;
D、p=(*p).next;(*q).next=(*p).next;(*p).next=q;

答案A

解析 解决本题的关键是如何将一个节点插入到链表的末尾。应先将节点q的地址赋给原尾节点的next域,然后将q节点的next域赋NULL。选项B)先将指针p指向data域为F的节点,然后将data域为F节点的next域值’\0’赋给q节点的next域,即将其置为0,再将p所指的节点next域放入指针q的值,从而把data域为q节点连接在末尾;选项C)先将q的next域置成NULL(NULL与’\0’等价),然后将指针p指向data域为F的节点,最后将p所指节点的next域置成q的值,同样可把data域为G的节点连接在末尾;选项D)与选项B)完全等价。因此,选项B), C),D)都能达到题目的要求。而选项A)则先将指针p指向data域为F的节点,然后将q的next域置成p的值,最后再将data域为F的节点又连接在data域为F的节点之后,从而使这两个节点的next域都是’\0’,实际上已将data域为F的节点排除在链表之外。
转载请注明原文地址:https://kaotiyun.com/show/BMJp777K
0

最新回复(0)