网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)

在一个双链表中,在*p节点(非尾节点)之后插入一个节点*s的操作是()。

A.s->prior=p;p->next=s; p->next->prior=s;s->next=p->next;

B.s->next=p->next;p->next->prior=s;p->next=s;s->prior=p;

C.p->next=s;s->prior=p;s->next=p->next; p->next->prior=s;

D.p->prior=s; s->next=p; s->next->prior=p; p->next=s->next;


参考答案和解析
O(n)
更多 “在一个双链表中,在*p节点(非尾节点)之后插入一个节点*s的操作是()。A.s->prior=p;p->next=s; p->next->prior=s;s->next=p->next;B.s->next=p->next;p->next->prior=s;p->next=s;s->prior=p;C.p->next=s;s->prior=p;s->next=p->next; p->next->prior=s;D.p->prior=s; s->next=p; s->next->prior=p; p->next=s->next;” 相关考题
考题 在一个单链表中p所指结点(p所指不是最后结点)之后插入一个由指针s所指结点,应执行s->next=_______;和p->next=________的操作。

考题 若在单向链表上,除访问链表中所有节点外,还需在表尾频繁插入节点,那么采用()最节省时间。 A.仅设尾指针的单向链表B.仅设头指针的单向链表C.仪设尾指针的单向循环链表D.仅设头指针的单向循环链表

考题 在一个单向链表中p所指结点之后插入一个s所指向的结点时,应执行s->next=p->next;和 的操作。

考题 在单链表中,要删除一个指定的节点,必须要找到该节点的______。

考题 在一个单链表中,若要删除p节点的后续节点,则执行A.p↑.next:=p↑.next↑.next;B.p:=p↑.next;p↑.next:=p↑.next↑.next;C.flee(p↑.next);D.p:=p↑.next↑.next;

考题 阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。【说明】函数DeleteNode(Bitree*r,inte)的功能是:在树根节点指针为r的二叉查找(排序)树上删除键值为e的节点,若删除成功,则函数返回0,否则函数返回-1。二叉查找树节点的类型定义为:typedef struct Tnode{int data;/*节点的键值*/struct Tnode *Lchild,*Rchiid;/*指向左、右子树的指针*/}*Bitree;在二叉查找树上删除一个节点时,要考虑3种情况。①若待删除的节点p是叶子节点,则直接删除该节点。②若待删除的节点p只有一个子节点,则将这个子节点与待删除节点的父节点直接连接,然后删除节点。③若待删除的节点p有两个子节点,则在其左子树上,用中序遍历寻找关键值最大的节点 s,用节点s的值代替节点p的值,然后删除节点s,节点s必属于上述①、②情况之一。【函数5-5】int DeleteNode(Bitree *r,int e){Bitree p=*r,pp,s,c;while( (1) {/*从树根节点出发查找键值为e的节点*/pp=p;if(e<p->data)p=p->Lchild;else p=p->Rehild;}if(!p)retrn -1;/*查找失败*/if(p->Lchild p->Rchild){/*处理情况③*/s=(2); pp=p;while( (3)){pp=s;s=s->Rchild;}p->data=s->data;p=s;}/* 处理情况①、②*/if((4))c=p->Lchild;else c=p->Rchild;if(p== *r)*r=c;else if((5))pp->Lchild=c;else pp->Rchild=c;free(p);return 0;}

考题 在单链表中在指针p所指节点后插入节点q的操作是A.q:=p↑.link;p↑.link:=q↑.linkB.p↑.link:=q↑.link;q↑.link:=p↑.linkC.q↑.link:=p;p↑.link:=qD.q↑.link:=p↑.link;p↑.link:=q

考题 有n个节点的单链表中,算法的时间复杂度是O(1)的操作是() A、访问第i个节点(1≤i≤n)B、在第i个节点后插入一个新节点(1≤i≤n)C、访问值为x的节点D、将n个节点从小到大排序

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

考题 循环链表的主要优点是(44)。A.已知某个节点的位置后,能很容易找到它的直接前驱节点B.在进行删除操作后,能保证链表不断开C.从表中任意节点出发都能遍历整个链表D.不再需要头、尾指针

考题 若某链表最常用的操作是在最后一个节点之后插入一个节点和删除最后一个节点,则采用______存储方式最节省时间。A.单链表B.双链表C.单循环链表D.带头节点的双循环链表

考题 在一个单链表中,若q节点是p节点的前驱节点,若在q与p之间插入节点s,则执行( )。A.s→qink=p→link; p→link=sB.p→link=s; s→qink=qC.p→link=s→link; s→link=pD.q→link=s; s→link=p

考题 在单链表中,增加头节点的目的是A.方便运算的实现B.使单链表至少有一个节点C.标识表节点中首节点的位置D.说明单链表是线性表的链式存储实现

考题 设单链表中节点的结构为(data,link)。已知指针q所指节点是指针p所指节点的直接前驱,若在*q与*p之间插入节点*s,则应执行下列哪一个操作?A.s↑.link:=p↑.link;p↑.link:=sB.q↑.link:=s;s↑.link:=pC.p↑.link:=s↑.link;s↑.link:=pD.p↑.link:=s;s↑.link:=q

考题 在循环双链表的p节点之后插As节点的操作是______。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; s→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;

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

考题 双链表的每个节点包括两个指针域。其中rlink指向节点的后继,llink指向节点的前驱。如果要在p所指节点后插入q所指的新节点,下面哪一个操作序列是正确的?A.p↑.rlink↑.llink:=q;p↑.rlink:=q;q↑.llink:=p;q↑.rlink:=p↑,rlink;B.p↑.llink↑.rlink:=q;p↑.llink:=q;q↑.rlink:=p;q↑.llink:=p↑.llink;C.q↑.llink:=p;q↑.rlink:=p↑.rlink;p↑.rlink↑.llink:=q;p↑.rlink:=q↑;D.q↑.rlink:=p;q↑.llink:=p↑.llink;p↑.1link↑.rlink:=q;p↑.llink:=q;

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

考题 在一个双链表中,包括头结点在内共有6个节点,则共有 【】 个指针。

考题 单向链表的每一个节点都有一个指向它的后续节点的指针link,现有节点P和q,要将q插入节点p的后面,正确的操作应该是A.q↑.link: =p↑.link; p↑.link: =q;B.q: =p↑.link; p↑.link:=q↑.link;C.q↑.link: =p; p↑.link: =q;D.q:=p↑.link; p:=q↑.link;

考题 单向链表的每一个节点都有一个指向它的后续节点的指针link,现有节点p和q,节点q在节点p的前面,要删除节点p,正确的操作应该是A.q↑.link:=p↑.link;B.p↑.link:=q↑.link;C.q↑.link:=p;p↑.link:=q;D.q:=p↑.link;p↑.link:=q↑.link;

考题 在循环双链表的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; s→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;

考题 设指针变量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;

考题 设一个有序的单链表中有n个节点,现要求插入一个新节点后使得单链表仍然保持有序,则该操作的时间复杂度为()。

考题 若在单向链表上,除访问链表中所有节点外,还需在表尾频繁插入节点,那么采用()最节省时间。A、仅设尾指针的单向链表B、仅设头指针的单向链表C、仪设尾指针的单向循环链表D、仅设头指针的单向循环链表

考题 在一个单链表中p所指结点之后插入一个s所指结点时,应执行()和p-next=s;的操作。

考题 在一个单向链表中p所指结点之后插入一个s所指的新结点,应执行s-next=p-next;和()操作。

考题 在*p之后插入节点*s的操作是()A、p-next=s;s-next=p-next;B、s-next=p-next;p-next=s;C、p=s-next;s=p-next;D、s=p-next;p=s-next;