设指针变量p指向双向链表中节点A,指针变量s指向被插入的节点X,则在节点A的后面插入节点X的操作序列为()

题目
设指针变量p指向双向链表中节点A,指针变量s指向被插入的节点X,则在节点A的后面插入节点X的操作序列为()

A.p->right=s;s->left=p;p->right->left=s;s->right=p->right;
B.p->right=s;p->right->left=s;s->left=p;s->right=p->right;
C.s->left=p;s->right=p->right;p->right=s;p->right->left=s;
D.s->left=p;s->right=p->right;p->right->left=s;p->right=s;
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向此链表中的三个连续节点。 struct node {int data;struct node*next;}*P,*q,*r; 现要将q所指节点从链表中删除,同时要保持链表的连续,

以下不能完成指定操作的语句是( )。

A.p->next=q->next;

B.p->next=P->next->next;

C.p->next=r;

D.p=q->next;


正确答案:D
解析:本题的考点是链表的指针操作。要想将q所指节点从链表中删除,同时要保持链表的连续,从图上看,应该将p->next=r,由于q->next、p->next->next都指向r,因此p->next=q->next、p->next=p->next->next同样可以实现指定的操作。因此选项A、B、C都能完成指定操作。而选项D“p=q->next”只是将指针p指向了r,不能完成指定的操作。因此正确选项是D。

第2题:

在单链表中在指针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


正确答案:D
解析:单链表中指针p所指节点后插入节点 q的操作是q↑.link:=p↑.link;p↑.link:=q。

第3题:

若在单向链表上,除访问链表中所有节点外,还需在表尾频繁插入节点,那么采用()最节省时间。

A.仅设尾指针的单向链表

B.仅设头指针的单向链表

C.仪设尾指针的单向循环链表

D.仅设头指针的单向循环链表


参考答案:C
单向链表仅设头指针时,在表尾插入节点时需要遍历整个链表,时间复杂度为0(n),仅设尾指针时,在表尾插入节点的时间复杂度为0(1),但是不能访问除了尾节点之外的所有其他节点。单向循环链表仅设头指针时,在表尾插入节点时需要遍历整个链表,时间复杂度为0(n),仅设尾指针时,在表尾插入节点的时间复杂度为0(1),同时达到表头节点的时间复杂度为0(1),因此对于题中给出的操作要求,适合采用仅设尾指针的单向循环链表。

第4题:

设单链表中节点的结构为(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


正确答案:B
解析:在单链表中两个节点之间插入一个新节点,要把前面节点的指针域指向新插入的节点(q↑.link=s),把新插入的节点的指针域指向后面的节点(s↑.link=p)。

第5题:

在双链表中,每个节点有两个指针域,一个指向前驱节点,另一个指向【 】。


正确答案:后续节点(后继节点)
后续节点(后继节点) 解析:链式存储结构的节点中,只有一个指示直接后继的指针域。因此从某个点出发,只能顺指针往后寻查其他节点。若要寻查节点的直接前驱,则需要从表头指针出发,影响查找效率。为了克服单链表这种单向性的缺点,可利用双向链表。双向链表的节点中,有两个指针域,其一指向直接后继,另一个指向直接前驱。

第6题:

有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把节点b连接到节点a 之后的语句是

struct node

{ char data;

struct node*next;

}a,b,*p= &a,*q=&b;

A.a. next=q;

B.p. next= &b;

C.p->next=&b;

D.(*p).next=q;


正确答案:B

第7题:

已知指针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;


参考答案:A

第8题:

设链式栈中节点的结构为(data,link),且top是指向栈顶的指针。则在栈顶插入一个由指针s所指的节点应执行______。

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;


正确答案:C
解析:栈有两种存储结构:顺序栈和链栈。
  顺序栈即栈的顺序存储结构,是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时设指针top指示栈顶元素的当前位置。
  链栈即栈的链式存储结构,链表的第一个元素是栈顶元素,链表的末尾是栈底节点,链表的头指针就是栈顶指针,栈顶指针为空则是空栈。

第9题:

在包含1000个元素的线性表中实现如下各运算,哪一个所需的执行时间最长?______。

A.线性表按顺序方式存储,性表的第10个节点后面插入一个新节点

B.线性表按链接方式存储,性表的第10个节点后面插入一个新节点

C.线性表按顺序方式存储,删除线性表的第990个节点

D.线性表按链接方式存储,删除指针p所指向的节点


正确答案:A

第10题:

单链表的每个节点中包括一个指针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;


正确答案:C

更多相关问题