从单链表中删除指针s所指结点的下一个结点t,其关键运算步骤为()。
第1题:
单链表的每个结点中包括一个指针link,它指向该结点的后继结点。现要将指针q指向的新结点插入到指针P指向的单链表结点之后,下面的操作序列中正确的是( )
A)q;=p↑.link;p↑.link:=q↑,link;
B)p↑.link.q↑.link;q:=p↑.link;
C)q↑.link::p↑.link;P↑.link:=q;
D)P↑.link:=q;q↑.link:=p↑.link;
第2题:
在一个单链表中,若p所指结点不是最后结点,在p所指结点之后插入s所指结点,则应执行(32)操作。
A.s->link=p;p->link=s;
B.s->link=p->link:p->link=s:
C.S->link=p->link; p=s:
D.p->link=s:s->link=p:
第3题:
在一个单链表中,若q节点是p节点的前驱节点,若在q与p之间插入节点s,则执行( )。
A.s→qink=p→link; p→link=s
B.p→link=s; s→qink=q
C.p→link=s→link; s→link=p
D.q→link=s; s→link=p
第4题:
单键表的每个结点中包括一个指针link,它指向该结点的后继结点。现要将指针q指向的新结点插入到指针p指向的单链表结点之后,下面的操作序列中哪一个是正确的?
A.q:=p^.link;p^.link:=q^.link;
B.p^.link:=q^.link;q:=p^.link;
C.q^.link:=p^.link;p^.link:=q;
D.p^.link:=q;q^.link:=p^.link;
第5题:
在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行( )。
A.s→link=p→dink; p→link=s
B.p→link=s; s→link=q
C.p→link=s→4ink; s→link=p
D.q→link=s; s→link=p
第6题:
单链表的每个结点中包括一个指针link,它指向该结点的后继结点。现将从单链表中删除指针p所指的下一结点。下面的操作序列中哪一个是正确的?
A.q:=p^.1ink;p^.link:=q^.link
B.p^.link:=q^.link;q:=p^.link
C.q^.link:=p^.link;p^.link=q
D.p^.link:=q;q^.link:=p^.link
第7题:
设单链表中结点的结构为已知指针p所指结点不是尾结点,若在*p之后插入结点*s,则应执行下列哪一个操作______。

A.s->link=p;p->link=s;
B.s->link=p->link;p->link=s;
C.s->link=p->link;p=s;
D.p->link=s;s->link=p;
第8题:
在一个单链表中,若q结点是p结点的前驱结点,在q与p之间插入结点s,则执行( )。
A.s→link=p→link; p→link=s
B.p→link=s; s→link=q
C.p→link=s→link; s→link=p
D.q→link=s; s→link=p
第9题:
从单链表中删除指针s所指结点的下一个结点t,其关键运算步骤为( )。
A.s↑.link:=t
B.t↑.link:=s
C.t↑.link:=s↑.link
D.s↑.link:=t↑.link
第10题:
第11题:
设单链表中结点结构为(data,link).若想摘除结点*p的直接后继,则应执行下列哪一个操作()
第12题:
link(s)←link(p),link(p)←s
link(q)←s,link(s)←p
link(p)←link(s),link(s)←p
link(p)←s,link(s)←q
第13题:
在单链表中在指针p所指结点后插入结点q的操作是
A.q:=p↑.link; p↑.link:=q↑.link
B.p↑.link:=q↑.link; q↑.link:=p↑.link
C.q↑.link:=p; p↑.link:=q
D.q↑.link:=p↑.link; p↑.link:=q
第14题:
阅读以下说明,回答问题1~5,将解答填入对应的解答栏内。
[说明] 若s和t是用单链表存储的两个串,设计一个函数将s串中首次与串t匹配的字串逆置。
linkstring * invert - substring ( s, t)
linkstring * s, * t;
{
linkstring *prior, *p, *t1, *r, *q, *u;
prior =s;
p=s;
t1 =t;
if ( (1) ) printf ( "error\n") ;
else
{
while { p ! = NULL && t1! = NULL)
{
if ( p- >data = = t1 - >data)
{
p = p- >link;
t1 = t1- >link;
}
else
{
(2)
p = prior - > link;
}
t1 = t- >link;
}
if ( t1 ! : NULL) printf ("cannot find");
else
{
(3)
r = q- >link;
q- >link = p;
while (r ! = p)
{
u = r- >link;
(4)
q=r;
r = u;
}
(5)
}
}
}
第15题:
设单链表中节点的结构为(data,link)。已知指针q所指节点是指针p所指节点的直接前驱,若在*q与*p之间插入节点*s,则应执行下列哪一个操作?
A.s↑.link:=p↑.link;p↑.link:=s
B.q↑.link:=s;s↑.link:=p
C.p↑.link:=s↑.link;s↑.link:=p
D.p↑.link:=s;s↑.link:=q
第16题:
设链式栈中结点的结构为(data,link),且top是指向栈顶的指针。若想在链式栈的栈顶插入一个由指针s所指的结点,则应执行的操作是(31)。
A.top->link=s;
B.s->link=top->link;top->link=s;
C.s->link=top;top=s;
D.s->link=top;top=top->link;
第17题:
向一个栈顶指针为H的链栈中插入一个s所指向的结点时,需执行()。
A.H->link=s
B.s->link=H->link;H->link=s;
C.s->link=H;H=s;
D.s->link=H;H=H->link;
第18题:
在一个单链表中,q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行(29)。
A.s→link=p→link;p→link=s;
B.p→link=s;s→link=q;
C.p→link=s→link;s→link=p;
D.q→link=s;s→link=p;
第19题:
设单链表中结点的结构为(dara,link)。已知指针q所指结点是指针p所指结点的直接前驱,若在*q与*p之间插入结点*s,则应执行下列哪一个操作?
A.s↑.link:=p↑.link;p↑.link:=s
B.q↑.link:=s;s↑.link:=p
C.p↑.link:=s↑.link;s↑.link:=p
D.p↑.link:=s;s↑.link:=q
第20题:
单链表的每个结点中包括一个指针link,它指向该结点的后继结点。现要将指针q指向的新结点插入到指针P指向的的单链表结点之后,下面的操作序列中哪一个是正确的?

A.q:=p↑.link; p↑.link:=q↑.link;
B.p↑.link:=q↑.link; q:=p↑.link;
C.q↑.link:=p↑.link;p↑link:=q;
D.p↑.link:=q; q↑.link:=p↑.link;
第21题:
在一个单链表中,若q结点是p结点的前驱结点,在q与p之间插入结点s,则执行( )。
A.s->link=p->link;p->link=s
B.p->link=s;s->link=q
C.p->link;s->link;s->link=p
D.q->link=s;s->link=p
第22题:
在单链表中,已知q指的结点是p指的结点的直接前驱结点,若在q和p指的结点之间插入一个由s指的结点,则需执行()
第23题:
s↑link:=t
t↑link:=s
t↑link:=s↑link
s↑link:=t↑link