更多"在循环双链表的P所指结点之后插入S所指结点的操作是( )"的相关试题:
[单项选择]在一个单链表中,若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:
[单项选择]非空双循环链表中,在q所指的结点前插入一个由p所指结点的过程依次为:p->next=q; p->prior=q->prior; q->prior=p; 下一条语句是______。
A. q->nex=p;
B. q->prior->next=p;
C. p->prior->next=p;
D. p->next->prior=p;
[单项选择]在一个单链表中,已知q所指结点是p所指结点的直接前趋,若在p,q之间插入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;
[填空题]下列算法用于判断带头结点的循环双链表A是否对称相等,请在算法中的一填上正确的语句。
int dlink_symmetry(dlklist s)
{ j=true;
p=s—>next;
q=s—>prior;
while(p!=q)&(______)
if(p—>data=q—>data)
{ (______);
(______);
}
else
j=false;
return(j);
}
[单项选择]若某线性表中最常用的操作是在最后一个结点之后插入一个结点和删除最后一个结点,则下面最合适的存储方式是______。
A. 单链表
B. 循环双链表
C. 单循环链表
D. 带有尾指针的单循环链表
[单项选择]若某线性表中最常用的操作是在最后一个结点之后插入一个结点和删除第一个结点,则下面最节省运算时间的存储方式是______。
A. 单链表
B. 带有头指针的单循环链表
C. 双链表
D. 带有尾指针的单循环链表
[简答题]设有带头结点的循环双链表表示的线性表L=(a1,a2,……,an-1,an)。设计在时
间和空间上都尽可能高效的算法,将L改造成L=(a1,a3,……,an,……a4,a2)。要求:
(1)给出算法的基本设计思想。
(2)根据设计思想,采用C或C++或JAVA语言描述算法,关键之处给出注释。
(3)说明你所设计算法的时间复杂度和空间复杂度。
[单项选择]若某链表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用______存储方式最节省时间。
A. 单链表
B. 双链表
C. 单循环链表
D. 带头结点的双循环链表
[单项选择]在一个单链表中,若p所指的结点不是最后结点,则删除p所指的结点的后继结点的正确操作是( )。
A. p=p->next
B. p->next=D->next
C. p->next=p->next->next
D. p->next=p
[单项选择]设单链表中结点的结构为(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
[填空题]在一个单链表中,在指针p所指向的结点之后插入指针s所指向的结点时,应执行“s->next= [9] ;”和“p->next= [10] ;”的操作。
[单项选择]在单链表中,删除p所指结点的直接后继的操作是 ( )
A. p—>next=p—>next—>next;
B. p=p—>next;p—>next=p—>next—>next;
C. p—>next=p—>next;
D. p=p—>next—>next;
[填空题]在带有头结点的单循环链表head中,指针p所指结点为尾结点的条件是_________。