设指针变量p指向单链表中结点A,若删除单链表中结点A,则需要修改指针的操作序列为()。A.q=p->next;p->data=q->data;p->next=q->next;free(q);B.q=p->next;p->data=q->data;free(q);C.q=p->next;p->next=q->next;free(q);D.q=p->next;q->data=p->data;p->next=q->next;free(q);

设指针变量p指向单链表中结点A,若删除单链表中结点A,则需要修改指针的操作序列为()。

A.q=p->next;p->data=q->data;p->next=q->next;free(q);
B.q=p->next;p->data=q->data;free(q);
C.q=p->next;p->next=q->next;free(q);
D.q=p->next;q->data=p->data;p->next=q->next;free(q);

参考解析

解析:应先使指针q指向结点A之后的结点,以防链表断裂,然后删除结点q,最后将删除的结点q的存储空间释放。

相关考题:

对于单链表表示法,以下说法正确的是() A指向链表的第一个结点的指针,称为头指针B单链表的每一个结点都被一个指针所指C任何结点只能通过指向它的指针才能引用D尾指针变量具标识单链表的作用,故常用尾指针变量来命名单链表

程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、P、q、均已正确定义,并用于指向链表结点,指针变量s总是作为头指针指向链表的第一个结点。该程序段实现的功能是( )。A.首结点成为尾结点B.尾结点成为首结点C.删除首结点D.删除尾结点

设指针变量p指向单链表中的结点A,则删去结点A的语句序列为 Q=p->next;p->data = p->data: p->next=(); :feee(q);

设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B插入结点X的操作序列为()。A.p->next=s;s->next=q;B.q->next=s;s->next=p;C.p->next=s->next;s->next=p;D.s->next=p->next;p->next=-s;

在单链表中,指针p指向结点A,若要删除A之后的结点(存在),则指针的操作方式为()。A.p—>next=p—>next—>nextB.p=p—>nextC.p=p—>next—>nextD.p->next-p

设单链表中指针p指着结点a,若要删除a之后的结点(若存在),则需要修改指针的操作为()A、p-next=p-next-nextB、p=p-nextC、p= p-next-nextD、p-next=p

设指针变量p指向单链表中某结点A,则删除结点A的后继结点需要的操作为()(不考虑存储空间的释放)。

设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为()A、p-next=p-next-next;  B、p=p-next; C、p=p-next-next;    D、p-next=p;

设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为()。A、p-next=p-next-nextB、p=p-nextC、p=p-next-nextD、p-next=p

设单链表中指针p指向结点a,若要删除p之后的结点(若存在),则需修改指针的操作为()。A、p->next=p->next->nextB、p=p->nextC、p=p->next->nextD、next=p

设单链表中指针p指向结点A,若要删除A的后继结点(假设A存在后继结点),则需修改指针的操作为()。

设单链表的结点结构为(data,next)。已知指针p指向单链表中的结点,q指向新结点,欲将q插入到p结点之后,则需要执行的语句:();()。

设单链表中指针p 指向结点A,q指针指向其后继结点。若要删除A的后继结点(假设A存在后继结点),则需修改指针的操作为()。

设有一个单向循环链表,头指针为head,链表中结点的指针域为next,p指向尾结点的直接前驱结点,若要删除尾结点,得到一个新的单向循环链表,可执行操作()。

要在一个单向链表中删除p所指向的结点,已知q指向p所指结点的直接前驱结点,若链表中结点的指针域为next,则可执行()。

在单链表、双链表和单循环表中,若仅知道指针p指向某结点,不知道头指针,能否将结点*p从相应的链表中删去?若可以,其时间复杂度各为多少?

填空题设单链表中指针p指向结点A,若要删除A的后继结点(假设A存在后继结点),则需修改指针的操作为()。

填空题设单链表中指针p 指向结点A,q指针指向其后继结点。若要删除A的后继结点(假设A存在后继结点),则需修改指针的操作为()。

单选题设单链表中指针p指着结点a,若要删除a之后的结点(若存在),则需要修改指针的操作为()Ap-next=p-next-nextBp=p-nextCp= p-next-nextDp-next=p

单选题设指针变量p指向单链表中结点A,若删除单链表中结点A,则需要修改指针的操作序列为( )。Aq=p-next;p-data=q-data;p-next=q-next;free(q);Bq=p-next;q-data=p-data;p-next=q-next;free(q);Cq=p-next;p-next=q-next;free(q);Dq=p-next;p-data=q-data;free(q);

问答题在单链表、双链表和单循环表中,若仅知道指针p指向某结点,不知道头指针,能否将结点*p从相应的链表中删去?若可以,其时间复杂度各为多少?

单选题设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为()Ap-next=p-next-next;  Bp=p-next; Cp=p-next-next;    Dp-next=p;

单选题设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为()。Ap-next=p-next-nextBp=p-nextCp=p-next-nextDp-next=p

单选题设单链表中指针p指向结点a,若要删除p之后的结点(若存在),则需修改指针的操作为()。Ap->next=p->next->nextBp=p->nextCp=p->next->nextDnext=p

填空题要在一个单向链表中删除p所指向的结点,已知q指向p所指结点的直接前驱结点,若链表中结点的指针域为next,则可执行()。

填空题设单链表的结点结构为(data,next)。已知指针p指向单链表中的结点,q指向新结点,欲将q插入到p结点之后,则需要执行的语句:();()。

填空题设指针变量p指向单链表中某结点A,则删除结点A的后继结点需要的操作为()(不考虑存储空间的释放)。