假定已建立以下链表结构,且指针p和q已指向如图所示的结点: 则以下选项中司将q所指结点从链表中删除并释放该结点的语句组是______。

admin2009-08-25  43

问题 假定已建立以下链表结构,且指针p和q已指向如图所示的结点:

则以下选项中司将q所指结点从链表中删除并释放该结点的语句组是______。

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

答案D

解析 本题题面要求删除q所指结点并释放该结点,而选项A中虽然是删除了q所指鲒点,但并未释放q这个结点,而释放的是p结点,所以选项A错误;选项B是将q的下一结点的地址赋值给指针变量p,这意味着p原来的成员变量内容被q的下一结点的成员变量内容所代替,即原p结点也被删除了,所以选项B错误;选项C相当于将q的所有成员变量内容代替了p的所有成员变量内容,即p结点被删除,所以错误;选项D是将q的下—结点的地址赋值给p的成员next (成员next用于存放一结点的地址),使得p的next成员不再指向q,而是指向q的下一结点,相当于删除了q这个结点,同叫用free函数正确释放了q这一结点,所以选项D正确。
转载请注明原文地址:https://jikaoti.com/ti/7bI0FFFM
0

最新回复(0)