假定已建立以下鏈表結(jié)構(gòu),且指針p和q已指向如圖所示的結(jié)點(diǎn):則以下選項(xiàng)中司將q所指結(jié)點(diǎn)從鏈表中刪
假定已建立以下鏈表結(jié)構(gòu),且指針p和q已指向如圖所示的結(jié)點(diǎn):
則以下選項(xiàng)中司將q所指結(jié)點(diǎn)從鏈表中刪除并釋放該結(jié)點(diǎn)的語(yǔ)句組是______。
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所指結(jié)點(diǎn)并釋放該結(jié)點(diǎn),而選項(xiàng)A中雖然是刪除了q所指鮚點(diǎn),但并未釋放q這個(gè)結(jié)點(diǎn),而釋放的是p結(jié)點(diǎn),所以選項(xiàng)A錯(cuò)誤;選項(xiàng)B是將q的下一結(jié)點(diǎn)的地址賦值給指針變量p,這意味著p原來(lái)的成員變量?jī)?nèi)容被q的下一結(jié)點(diǎn)的成員變量?jī)?nèi)容所代替,即原p結(jié)點(diǎn)也被刪除了,所以選項(xiàng)B錯(cuò)誤;選項(xiàng)C相當(dāng)于將q的所有成員變量?jī)?nèi)容代替了p的所有成員變量?jī)?nèi)容,即p結(jié)點(diǎn)被刪除,所以錯(cuò)誤;選項(xiàng)D是將q的下—結(jié)點(diǎn)的地址賦值給p的成員next (成員next用于存放一結(jié)點(diǎn)的地址),使得p的next成員不再指向q,而是指向q的下
詞條內(nèi)容僅供參考,如果您需要解決具體問(wèn)題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。