7、下面的算法功能是逆置单链表,在 处填上合适的语句。 void Inversion(Link L) { p=L->next; L->next=null; while p { q=p; p=p->next; L->next=q; } }

7、下面的算法功能是逆置单链表,在 处填上合适的语句。 void Inversion(Link L) { p=L->next; L->next=null; while p { q=p; p=p->next; L->next=q; } }


参考答案和解析
lklistq=p

相关考题:

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

在有头结点的单链表L中,向表头插入一个由指针p指向的结点,则执行()。 A.L=p;p->next=L;B.p->next=L;L=p;C.p->next=L;p=L;D.p->next=L->next;L->next=p;

在带头结点的单链表L中,若要删除第一个结点,则需执行下列三条语句:();L->next=p->next;deletep;

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

在双向循环链表中,在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、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用语句( )。 A、p->next=q->nextB、q->next=NULLC、p->next=qD、p=q->next

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

在单链表中,指针p指向元素为x的结点,实现删除x节点的后继结点的语句是()。 A、p=p->next;B、p->next=p->next->next;C、p->next=p;D、p->next->next=p->next->next->next;

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

若有以下定义: struct fink { int data; struct link*next; } a,b,c,*p,*q; 且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。则能够把c插入到a和b之间并形成新的链表的语句组是:A.a.next;c;c.next=b;B.p.next=q;q.next=p.next;C.p->next=c;q->next=p->next;D.(*p).next=q;(*q).next=b;

p指向线性链表中某一结点,则在线性链表的表尾插入结点s的语句序列是()。A.while(p->next!=NULL)p=p->next;p->next=s;s->next=NULL;B.while(p!=NULL)p=p->next;p->next=s;s->next=NULL;C.while(p->next!=NULL)p=p->next;s->next=p;p->next=NULL;D.while(p!=NULL)p=p->next->next;p->next=s;s->next=p->next;

若以下定义:struct link { int data; struck link *next;}a,b,c,*p,*q; 且变量a和b之间已有如下图所示的链表结构:指针p指向变量a, q指向变量c。则能够把c插入到a和b之间并形成新的链表的语句组是A.a.next=c;c.next=b;B.p.next=q;q.next=p.next;C.p->next=c;q->next=p->next;D.(*p).next=q;(*q).next=b;

若有以下定义:则不能将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

在一个单链表中,若要在指针q所指结点的后面插入一个由指针p所指向的结点,则执行下面哪条语句?( )A.q->next=p-next;p=qB.p->next=q->next;q=pC.q->next=p->next;p->next=qD.p->next=q->next;q->next=p

若L是一个无表头结点的单链表,P结点既不是首结点,也不是尾结点。删除P结点的后继结点的语句是(57)。A.P→ next = P→next→next; Q=P→next; free(Q);B.Q = P → next; P → next = P → next→next; free(Q);C.P → next → next = P → next; Q = P → next; free(Q);D.Q = P → next; P → next → next = P→next; free(Q);

若已建立如下图所示的单向链表结构:在该链表结构中,指针p、s分别指向图中所示结点,则不能将s所指的结点插入到链表末尾仍构成单向链表的语句组是______。A.p=p->next;s->next=p;p->next=s;B.p=p->next;s->next=p->next;p->next=s;C.s->next=NULL;p=p->next;p->next=S;D.p=(*p).next;(*S).next=(*p).next;(*p).next=s;

若已建立下面的链表结构,指针p、s分别指向图中所示的结点,则不能将s所指的结点插入到链表末尾的语句组是 ( )A.s->next=NULL;p=p->next;p->next=s;B.p=p->next;s->next=p->next;p->next=s;C.p=p->next;s-next=p;p->next=s;D.p=(*p).next;(* s).next=(* p).next;(* p).next=s;

假定建立了以下链表结构,指针p、q分别指向如图所示的结点,则以下可以将q所指结点从链表中删除并释放该结点的语句组是 ( )A.free(q);p->Next=q->next;B.(* p).next=(* q).nexy;free(q);C.q=(* q).next;(* p).next=q;free(q);D.q=q->next;p->next=q;p=p->next;free(p);

若以下定义: struct link { int data; struct link *next; }a,b,C,*p,*q; 且变量a和b之间已有下图所示的链表结构。指针p指向变量a,q指向变量c,则能够把c插入到a和b之间并形成新的链表的语句组是( )。A.a.next=c;c.next=b;B.p.next=q;q.next=p.next;C.q->next=p->next;p->next=c;D.(*p).next=c;(*q).next=b;

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

己知指针p指向单链表中的某结点,则下列各组语句能删除链表中结点的是()A、p=p->nextB、q=p->next;q=q->nextC、p->next = p-next->nextD、q=p->next;p=p->next;q=p->next

下列算法将单链表中值重复的结点删除,使所得的结果表中各结点值均不相同,试完成该算法。 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; } }

已知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);

在一个头指针为ph的单链表中,若要在指针q所指结点的后面插入一个由指针p所指向的结点,则执行()操作。A、p->next=q->next;q=pB、p->next=q->next;q-next=pC、q->next=p->next;p->next=qD、q->next=p->next;p->next=q->next

问答题已知L是无表头结点的单链表,且P结点既不是首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列。 a.在P结点后插入S结点的语句序列是()。 b.在P结点前插入S结点的语句序列是()。 c.在表首插入S结点的语句序列是()。 d.在表尾插入S结点的语句序列是()。 (1)P-next=S; (2)P-next=P-next-next; (3)P-next=S-next; (4)S-next=P-next; (5)S-next=L; (6)S-next=NULL; (7)Q=P; (8)while(P-next!=Q)P=P-next; (9)while(P-next!=NULL)P=P-next; (10)P=Q; (11)P=L; (12)L=S; (13)L=P;

单选题在一个头指针为ph的单链表中,若要在指针q所指结点的后面插入一个由指针p所指向的结点,则执行()操作。Ap->next=q->next;q=pBp->next=q->next;q-next=pCq->next=p->next;p->next=qDq->next=p->next;p->next=q->next

单选题己知指针p指向单链表中的某结点,则下列各组语句能删除链表中结点的是()Ap=p->nextBq=p->next;q=q->nextCp->next = p-next->nextDq=p->next;p=p->next;q=p->next