单选题设指针变量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指向单链表中结点A,若删除单链表中结点A,则需要修改指针的操作序列为(  )。
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);


参考解析

解析:

相关考题:

在一个单链表head中,若要在指针p所指结点后插入一个q指针所指结点,则执行() A.p-next=q-next;q-next=p;B.q-next=p-next;p=q;C.p-next=q-next;p-next=q;D.q-next=next;p-next=q;

若有以下定义则不能将指针q所指的结点接到链表末尾的程序段是()。 A.q-next=NULL;p=p-next;p-next=qB.p=p-next;q-next=p-next;p-next=qC.p=p-next;q-next=p;p-next=qD.p=(*p).next;(*q).next=(*p).next;(*p).next=q

若有以下定义:则不能将q所指向的结点连到上图所示链表末尾的一组语句是() A.q-next=NULL;p=p-next;p-next=qB.p=p-next;q-next=p;p-next=qC.p=p-next;q-next=p-next;p-next=qD.p=(*p).next;(*q).next=(*p).next;(*p).next=q

删除*p节点的操作是()A、q=p;delete p;B、p=q;delete q;C、q-next=p-next;delete p;D、p-next=q-next;delete q;

在一个单链表head中,若要在指针p所指结点后插入一个q指针所指结点,则执行()A、p-next=q-next;q-next=p;B、q-next=p-next;p=q;C、p-next=q-next;p-next=q;D、q-next=next;p-next=q;

已知指针p和q分别指向某单链表中第一个结点和最后一个结点。假设指针s指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为()。A、q-next=s-next;s-next=p;B、s-next=p;q-next=s-next;C、p-next=s-next;s-next=q;D、s-next=q;p-next=s-next;

在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,则须执行()A、s-next=p-next;  p-next=s B、q-next=s;  s-next=p C、p-next=s-next;  s-next=p D、p-next=s;  s-next=q

在一个单链表中要删除p所指结点的后继结点,可执行q=p-next;和()A、p-next=q-nextB、p=q-nextC、p-next=q

在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入一个结点s,则执行()。A、s-next=p-next;p-next=s;B、p-next=s-next;s-next=p;C、q-next=s;s-next=p;D、p-next=s;s-next=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;

在双向循环链表中,在p指针所指的结点后插入一个指针q所指向的新结点,修改指针的操作是()。A、p-next=q;q-prior=p;p-next-prior=q;q-next=q;B、p-next=q;p-next-prior=q;q-prior=p;q-next=p-next;C、q-prior=p;q-next=p-next;p-next-prior=q;p-next=q;D、q-next=p-next;q-prior=p;p-next=q;p-next=q;

在非空线性链表中由p所指的结点后面插入一个由q所指的结点的过程是依次执行语句:q-next=p-next;p-next=q。

在一个单链表中,已知q所指结点是p所指结点的直接前驱,若在q和p之间插入s所指结点,则执行()操作。A、s-next=p-next;p-next=s;B、q-next=s;s-next=p;C、p-next=s-next;s-next=p;D、p-next=s;s-next=q;

在双向循环链表中,在p指针所指的结点后插入q所指向的新结点,其修改指针的操作是()。A、p-next=q; q-prior=p; p-next-prior=q; q-next=q; B、p-next=q; p-next-prior=q; q-prior=p; q-next=p-next; C、q-prior=p; q-next=p-next; p-next-prior=q; p-next=q; D、q-prior=p; q-next=p-next; p-next=q; p-next-prior=q;

在一个单链表中p指向结点a,q指向结点a的直接后继结点b,要删除结点b,可执行()。A、p-next=q-next;B、p=q-next;C、p-next=p;D、p-next=q;

下列算法将单链表中值重复的结点删除,使所得的结果表中各结点值均不相同,试完成该算法。 void DelSameNode(LinkList L) //L是带头结点的单链表,删除其中的值重复的结点// {ListNode * p,*q,*r; p=L-next; //p初始指向开始结点// while(p){ //处理当前结点p// q=p; r=q-next; do { //删除与结点*p的值相同的结点// while(rr-data!=p-data){ q=r; r=r-next; } if(r){ //结点*r的值与*p的值相同,删除*r// q-next=r-next; free(r); r=(); } }while( r ); p=p-next; } }

在一个单链表HL中,若要在指针q所指的结点的后面插入一个由指针p所指的结点,则执行()A、q-next=p-next;p-next=q;B、p-next=q-next;q=p;C、p-next=q-next;q-next=p;

在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用语句()。A、p-next=q-nextB、p=q-nextC、q-next=NULLD、p-next=q

已知L是带表头结点的非空单链表,且P结点既不是首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列。 a.删除P结点的直接后继结点的语句序列是()。 b.删除P结点的直接前驱结点的语句序列是()。 c.删除P结点的语句序列是()。 d.删除首元结点的语句序列是()。 e.删除尾元结点的语句序列是()。 (1)P=P-next; (2)P-next=P; (3)P-next=P-next-next; (4)P=P-next-next; (5)while(P!=NULL)P=P-next; (6)while(Q-next!=NULL){P=Q;Q=Q-next;} (7)while(P-next!=Q)P=P-next; (8)while(P-next-next!=Q)P=P-next; (9)while(P-next-next!=NULL)P=P-next; (10)Q=P; (11)Q=P-next; (12)P=L; (13)L=L-next; (14)free(Q);

函数实现单链表的删除算法,请在空格处将算法补充完整。int ListDelete(LinkList L,int i,ElemType *s){ LNode *p,*q; int j; p=L;j=0; while(( (1) )(jnext;j++; } if(p-next==NULL||ji-1) return ERROR; q=p-next; (2) ; *s=q-data; free(q); return OK;}/*listDelete*/

单选题在一个单链表head中,若要在指针p所指结点后插入一个q指针所指结点,则执行()Ap-next=q-next;q-next=p;Bq-next=p-next;p=q;Cp-next=q-next;p-next=q;Dq-next=next;p-next=q;

单选题在一个单链表HL中,若要在指针q所指的结点的后面插入一个由指针p所指的结点,则执行()Aq-next=p-next;p-next=q;Bp-next=q-next;q=p;Cp-next=q-next;q-next=p;

填空题函数实现单链表的删除算法,请在空格处将算法补充完整。int ListDelete(LinkList L,int i,ElemType *s){ LNode *p,*q; int j; p=L;j=0; while(( (1) )(jnext;j++; } if(p-next==NULL||ji-1) return ERROR; q=p-next; (2) ; *s=q-data; free(q); return OK;}/*listDelete*/

判断题在非空线性链表中由p所指的结点后面插入一个由q所指的结点的过程是依次执行语句:q-next=p-next;p-next=q。A对B错

单选题在一个单链表HL中,若要删除由指针q所指向结点的后继结点,则执行()Ap=q-next;p-next=q-next;Bp=q-next;q-next=p;Cp=q-next;q-next=p-next;Dq-next=q-next-next;q-next=q;

单选题在双向循环链表中,在p指针所指的结点后插入q所指向的新结点,其修改指针的操作是()。Ap-next=q; q-prior=p; p-next-prior=q; q-next=q; Bp-next=q; p-next-prior=q; q-prior=p; q-next=p-next; Cq-prior=p; q-next=p-next; p-next-prior=q; p-next=q; Dq-prior=p; q-next=p-next; p-next=q; p-next-prior=q;

单选题在双向循环链表中,在p指针所指的结点后插入一个指针q所指向的新结点,修改指针的操作是()。Ap-next=q;q-prior=p;p-next-prior=q;q-next=q;Bp-next=q;p-next-prior=q;q-prior=p;q-next=p-next;Cq-prior=p;q-next=p-next;p-next-prior=q;p-next=q;Dq-next=p-next;q-prior=p;p-next=q;p-next=q;