某双向链表中,结点结构为【prior,data,next】。那么删除p指针所指结点时,需要执行语句:p->next->prior=p->prior; ; free(p);
第1题:
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;
第2题:
A、p=p->next;
B、p->next=p->next->next;
C、p->next=p;
D、p->next->next=p->next->next->next;
第3题:
A.f->prior=p;f->next=p->next;p->next=f;p->next->prior=f;
B.p->next=f;f->prior=p;p->next->prior=f;f->next=p->next;
C.f->prior=p;f->next=p->next;p->next->prior=f;p->next=f;
D.p->next=f;p->next->prior=f;f->prior=p;f->next=p->next;
第4题:
设线性链表中结点的结构为(data,next)。若想删除结点p的直接后继,则应执行下列()操作。
A.p->next=p->next->next;
B.p=p->nextp->next=p->next->next;
C.p->next=p->next;
D.p=p->next->next;
第5题:
阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。
【说明】
设有一个带表头结点的双向循环链表L,每个结点有4个数据成员:指向前驱结点的指针prior、指向后继结点的指针next、存放数据的成员data和访问频度freq。所有结点的freq初始时都为0。每当在链表上进行一次L.Locate(x)操作时,令元素值x的结点的访问频度 freq加1,并将该结点前移,链接到现它的访问频度相等的结点后面,使得链表中所有结点保持按访问频度递减的顺序排列,以使频繁访问的结点总是靠近表头。
【函数】
void Locate( int &x)
{ <结点类型说明>
* p =first -> next;
while(p!=frist&&(1))P=P->next;
if(p! =first) /*链表中存在x*/
{(2);
<结点类型说明>
* current = P; /*从链表中摘下这个结点*/
Current -> prior -> next = current -> next;
Current -> next -> prior = current -> prior;
P = current -> prior; /*寻找重新插入的位置*/
While(p! =first &&(3))p=p->prior;
Current-> next =(4); /*插入在P之后*?
Current -> prior = P;
P -> next -> prior = current;
P->next=(5);
}
else printf("Sorry. Not find! \n"); /*没找到*/
}
第6题:
在非空双向循环链表结点中,prior域指向该结点的直接前驱,next域指向直接后续,那么在q所指的结点后面插入p所指的结点的过程为______。
A.q→next=p;p→prior=q;q→next→prior=p;p→next=q→next。
B.p→next=q→next;q→next=p;q→next→prior=p;p→prior=q。
C.p→prior=q;p→next=q→next;q→next=p;q→next→prior=p。
D.p→next=q→next;q→next→prior=p;p→prior=q;→next=p。
第7题:
在一个带头结点的循环双向链表中,若要删除指针p所指向的结点则执行()嗓作。
第8题:
在双向链表中,要删除p所指的结点,其中所用的一条语句(p->next)->prior=p->prior;的功能是:使P所指结点的直接后继的左指针指向()
第9题:
在双向链表存储结构中,删除p所指的结点时须修改指针()。
第10题:
在一个双向链表中删除指针p所指向的结点时,需要对p->next->prior指针域赋值为()
第11题:
第12题:
p->next=p
p=p->next->next
p->next=p->next->next
p=p->next;p->next=p->next->next
第13题:
A.p->next->prior=p->prior;p->prior->next=p->next;
B.p->next=p->next->next;p->next->prior=p;
C.p->prior->next=p;p->prior=p->prior->prior;
D.p->prior=p->next->next;p->next=p->prior->prior;
第14题:
A、p->next=p->next->next;
B、p->next=p->next;
C、p=p->next;
D、p=p->next->next;
第15题:
A、p->next=s;s->prior=p;p->next->prior=s;s->next=p->next;
B、s->prior=p;s->next=p->next;p->next=s;p->next->prior=s;
C、p->next=s;p->next->prior=s;s->prior=p;s->next=p->next;
D、s->prior=p;s->next=p->next;p->next->prior=s;p->next=s;
第16题:
在循环双链表的p结点之后插入s结点的操作是______。
A.p->next=s; p->next->prior=s; s->prior=p; s->next=p->next;
B.s->next=p; s->next=p->next; p->next=s; p->next->prior=s;
C.p->next=s; 3->prior=p; p->next->prior=s; s->next=p->next;
D.s->prior=p; s->next=p->next; p->next->prior=s; p->next=s;
第17题:
A.p->prior->next=p->next;p->next->prior=p->prior;
B.p->prior=p->prior->prior;p->prior->prior=p;
C.p->next->prior=p;p->next=p->next->next;
D.p->next=p->prior->prior;p->prior=p->prior->prior;
第18题:
第19题:
已知单链表上一结点的指针为p,则删除该结点后继的正确操作语句是:()
第20题:
设单链表中指针p指向结点a,若要删除p之后的结点(若存在),则需修改指针的操作为()。
第21题:
在一个单链表中,若要删除p指针所指向结点的后继结点,则执行()
第22题:
第23题:
p->next->prior=p->prior; p->prior->next=p->next;
p->next=p->next->next; p->next->prior=p;
p->prior->next=p; p->prior=p->prior->prior;
p->prior=p->next->next; p->next=p->prior->prior;
第24题:
p = p->prior;p->prior->next = p->next
p->prior->next = p;p->next = p->next->prior
p->next->prior = p;p->next = p->next->next
p->prior->next = p->next;p->next->prior = p->prior