网友您好, 请在下方输入框内输入要搜索的题目:
题目内容
(请给出正确答案)
对于单链表,如果仅仅知道一个指向链表中某结点的指针p,(54)将p所指结点的数据元素与其确实存在的直接前驱交换,对于单循环链表来说(55),而对双向链表来说(56)。
A.可以
B.不可以
C.不确定
D.仅能一次
参考答案
更多 “ 对于单链表,如果仅仅知道一个指向链表中某结点的指针p,(54)将p所指结点的数据元素与其确实存在的直接前驱交换,对于单循环链表来说(55),而对双向链表来说(56)。A.可以B.不可以C.不确定D.仅能一次 ” 相关考题
考题
●对于单链表,如果仅仅知道一个指向链表中某结点的指针p, (54) 将p所指结点的数据元素与其确实存在的直接前驱交换,对于单循环链表来说 (55) ,而对双向链表来说 (56) 。(54) ~(56) A.可以B.不可以C.不确定D.仅能一次
考题
阅读以下说明和C函数,填补代码中的空缺,将解答填入答题纸的对应栏内。
[说明]
函数ReverseList(LinkList headptr)的功能是将含有头结点的单链表就地逆置。处理思路是将链表中的指针逆转,即将原链表看成由两部分组成:已经完成逆置的部分和未完成逆置的部分,令s指向未逆置部分的第一个结点,并将该结点插入已完成部分的表头(头结点之后),直到全部结点的指针域都修改完成为止。
例如,某单链表如图1所示,逆置过程中指针s的变化情况如图2所示。
链表结点类型定义如下:
typedef struct Node{ int data; Struct Node *next; }Node,*LinkList; [C函数] void ReverseList(LinkList headptr) { //含头结点的单链表就地逆置,headptr为头指针 LinkList p,s; if(______) return; //空链表(仅有头结点)时无需处理 P=______; //令P指向第一个元素结点 if(!P->next) return; //链表中仅有一个元素结点时无需处理 s=p->next; //s指向第二个元素结点 ______ =NULL; //设置第一个元素结点的指针域为空 while(s){ p=s; //令p指向未处理链表的第一个结点 s= ______; p->next=headptr->next; //将p所指结点插入已完成部分的表头 headptr->next= ______; } }
考题
在一个单链表中,指针P指向结点是指针S所指向结点的直接前驱结点,从链表中删除S所指向结点的操作为:A.p=s;B.s->next=p->next;C.p->next=s->next;D.s=p;
热门标签
最新试卷