首页/ 题库 / [问答题]在单链表、双链表和单循环表中,若仅知道指的答案

在单链表、双链表和单循环表中,若仅知道指针p指向某结点,不知道头指针,能否将结点*p从相应的链表中删去?若可以,其时间复杂度各为多少?

问答题
2022-01-12 23:22
查看答案

正确答案

1.单链表。当我们知道指针p指向某结点时,能够根据该指针找到其直接后继,但是由于不知道其头指针,所以无法访问到p指针指向的结点的直接前趋。因此无法删去该结点。
2.双链表。由于这样的链表提供双向链接,因此根据已知结点可以查找到其直接前趋和直接后继,从而可以删除该结点。其时间复杂度为O(1)。
3.单循环链表。根据已知结点位置,我们可以直接得到其后相邻的结点位置(直接后继),又因为是循环链表,所以我们可以通过查找,得到p结点的直接前趋。因此可以删去p所指结点。其时间复杂度应为O(n)。


试题解析

感兴趣题目
在头指在单链表中,指针p指向元素为x的结点,实现删除x的后继的语句是()。
在单链表中,指针p指向元素为x的结点,下面哪条语句实现“删除x的后继”? ( )
在具有头结点的单链表中,头指针指向链表的第一个数据结点。
在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用语句()。
在双向循环链表中,在P指针所指向的结点前插入一个指针q所指向的新结点,其修改指针的操作是(55)。
假设双链表结点的类型如下: Typedef struct linknode {int data; /*数据域*/ struct linknode *llink; /*llink是指向前驱结点的指针域*/ struct linknode *rlink; /*rlink是指向后续结点的指针域*/ }bnode 下面给出的算法段是要把一个q所指的新结点作为非空双向链表中的p所指结点的前驱结点插入到该双链表中,能正确完成要求的算法段是(32)。
用不带头结点的单链表存储队列,其头指针指向队头结点,尾指针指向队尾结点,则在进行出队操作时()。
用不带头结点的单链表存储队列时,其队头指针指向队头结点,其队尾指针指向队尾结点,则在进行删除操作时( )。
在一个单链表中,若要在指针q所指结点的后面插入一个由指针p所指向的结点,则执行下面哪条语句?( )
设有一个单向循环链表,结点的指针域为next,头指针为head,指针p指向表中某结点,若逻辑表达式()的结果为真,则p所指结点为尾结点。
设单链表的结点结构为(data,next)。已知指针p指向单链表中的结点,q指向新结点,欲将q插入到p结点之后,则需要执行的语句:();()。
已知指针p和q分别指向某单链表中第一个结点和最后一个结点。假设指针s指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为()。
相关题目
在双向循环链表中,在p指针所指向的结点前插入一个指针q所指向的新结点其修改指针的操作是( )。(双向链表的结点结构是llink,data,rlink)
在单链表中,存储每个结点需要有两个域,一个是数据域,另一个是指针域,它指向该结点的( )。
在单链表、双向循环链表和单循环链表中,若仅知道指针 p 指向某结点,不知道头指针,能否将结点 p 从相应的链表中删除?若可以,时间复杂度各为多少。
在一个表头指针为ph的单链表中,若要在指针q所指结点的后面插入一个由指针p所指向的结点,则执行( )操作。
在一个表头指针为ph的单链表中,若要向表头插入一个由指针p指向的结点,则应执行( )操作。
. 设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为( )。
非空的循环单链表(头指针为 head )的尾结点(由 p 指向)满足【 】。
已知指针p指向单链表L中的某结点,则删除其后继结点的语句是
用不带头结点的单链表存储队列时,其队头指针指向队头结点,其队尾指针指向队尾结点,则在进行删除操作时()。
在一个单链表中,若要在P所指向的结点之后插入一个新结点,则需要相继修改指针域的值的个数为 ( )。
在双链表中,每个结点有两个指针域,一个指向___ ,另一个指向___。
在单链表中,要访问某个结点,只要知道该结点的地址即可;因此,单链表是一种随机存取结构。
设单链表的结点结构为(data,next)。已知指针p指向单链表中的结点,q指向新结点,欲将q插入到p结点之后,则需要执行的语句:();()。
在一个单链表中,若删除p所指向结点的后续结点,则执行()。
设指针变量p指向单链表中某结点A,则删除结点A的后继结点需要的操作为()(不考虑存储空间的释放)。
单链表的每个结点中包括一个指针link,它指向该结点的后继结点。现要将指针q指向的新结点插入到指针P指向的单链表结点之后,下面的操作序列中正确的是( )
在单链表中,指针P指向元素为x的结点,语句(10)现“删除x的后继”
在单链表中,指针P指向元素为x的结点,实现“删除x的后继”的语句是(20)。
●在单链表中,指针p指向元素为x的结点,实现"删除x的后继"的语句是 (20) 。
在单链表、双链表和单循环表中,若仅知道指针p指向某结点,不知道头指针,能否将结点*p从相应的链表中删去?若可以,其时间复杂度各为多少?
广告位招租WX:84302438

免费的网站请分享给朋友吧