题目内容 (请给出正确答案)
[主观题]

设双向循环链表中结点的数据域、前驱和后继指针域分别为data、pre和next,试写出在指针P所指结点之

前插入一S结点的C语言描述语句。【北京科技大学2001一、3(2分)】

提问人:网友youtiti 发布时间:2022-01-06
参考答案
查看官方参考答案
如搜索结果不匹配,请 联系老师 获取答案
更多“设双向循环链表中结点的数据域、前驱和后继指针域分别为data…”相关的问题
第1题
已知有一个单向循环链表, 其每个结点中含三个域:pre, data和next, 其中data为数据域, next为
指向后继结点的指针域, pre也为指针域,但它的值为空,试编写算法将此单向循环链表改为双向循环链表, 即使pre成为指向前驱结点的指针域。

点击查看答案
第2题
设有一头指针为L的带有表头结点的非循环双向链表,其每个结点中除有pred(前驱指针)、data(数据)和n

设有一头指针为L的带有表头结点的非循环双向链表,其每个结点中除有pred(前驱指针)、data(数据)和next(后继指针)域外,还有一个访问频度域freq。在链表被起用前,其值均初始化为零。每当在链表中进行一次Locate(L,x)运算时,令元素值为x的结点中freq域的值增1,并使此链表中结点保持按访问频度非增(递减)的顺序排列,同时最近访问的结点排在频度相同的结点的最后,以便使频繁访问的结点总是靠近表头。试编写符合上述要求的Locate(L,x)运算的算法,该运算为函数过程,返回找到结点的地址,类型

点击查看答案
第3题
以下是用类C语言写出的算法,该算法将以二叉链表存储的二叉树中的叶子结点按从左到右的顺序链成一
个带头结点的双向循环链表,链接时,结点的Lchild域作为前链域,指向结点的直接前驱,结点的Rchild域作为后链域,指向结点的直接后继。算法中,使用一个顺序栈stack,栈顶指针为top,P、t为辅助指针,head为双向循环链表的头指针。试填充算法中的空格,以完整算法。 void leafchain(BiTree&bt) {p=(BiTree)malloc(sizeof(BiTNode));

点击查看答案
第4题
下面对双向链表描述正确的是()

A.双向链表在结点中设两个引用域。

B..链表中有一个保存直接前驱结点的地址prev,一个保存直接后继结点的地址next,这样的链是双向链表

C.双向链表结点的定义与单链表的结点的定义很相似,只是双向链表多了一个字段prev。

D.以上都对

点击查看答案
第5题
对表中任一结点都可访问其直接前驱和直接后继的是()

A.双向静态链表

B.单链表

C.顺序表

D.双链表

E.循环链表

点击查看答案
第6题
双向链表中有两个指针域llink和rlink,分别指向该结点的前驱和后继。设P指向链表中的一个结点,它的左右结点均非空。现要求删除结点P,则下面语句序列中错误的是()

A.P->rlink->llink = p->rlink;P->llink->rlink = p->llink; delete(p)

B.P->llink->rlink = p->rlink;P->rlink->llink = p->llink;delete(p)

C.P->rlink->llink = p->llink;P->rlink->llink ->rlink= p->rlink;delete(p)

D.P->llink->rlink = p->rlink;P->llink->rlink->llink = p->llink;delete(p)

点击查看答案
第7题
双向链表中有两个指针域llink和rlink,分别指向该结点的前驱及后继。设p指向链表中的一个结点,它的左右结点均非空。现要求删除结点P,则下面语句序列中正确的是()

A.p->rlink->llink = p->rlink;p->llink->rlink = p->llink; delete p

B.P->llink->rlink = p->rlink;p->rlink->llnik = p->llink; delete p

C.p->rlink->llink = p->llink;p->rlink->llink->rlink = p->rlink; delete p

D.p->llink->rlink = p->rlink;p->llink->rlink->llink = p->llink; delete p

点击查看答案
第8题
以下是用类C语言写出的算法,该算法将以二叉链表存储的二叉树中的叶结点按从左到右的顺序链成一个
带头结点的双向循环链表,链接时,结点的Lchild域作为前链域,指向结点的直接前驱,结点的Rehild域作为后链域,指向结点的直接后继。算法,使用一个顺序栈stack,栈顶指针为top,p、t为辅助指针,head为双向循环链表的头指针。试填充算法中的空格,使算法完整。 void leafchain(){ p=(BiTree)malloc(sizeof(BiTNode)); if(!p){ printf(“OVERFLOW\n”); exit(1); } head=p; top=0; if(bt){ top++: stack[top]=bt; while(top){ t=stack[top]; top——; if(!t->Lchild&&!t->Rchild){ (1) (2) (3) } else{ if((4) ){ top++; stack[top]= (5) } if((6) ){ top++: stack[top]= (5) } } } (8) (9) } }

点击查看答案
第9题
设存在一个带头结点的单循环链表L,每个结点包含三个域,它们分别是prior、data和next。其中data为数
据域,prior是指针域,其值为空指针;next是指针域,指向直接后继结点。下面的代码将此单链表转化为双向循环链表。 #define OK 1 #define ERROR 0 typedef int ElemType; typedef int Status; typedef struct LNode{ struct LNode* prior; ElemType data; struct LNode* next; }DuLNode,*DuLinkList; Status CreateDuList_prior(DuLinkList &L){ // Make the prior point to the precursor node. DuLinkList p,q; 1 ; do{ q = p->next; 2 ; p = q; }while(p!=L); return OK; } 请填写空格1和2处的代码,实现上述功能。

点击查看答案
第10题
在对双向循环链表做删除一个结点操作时,应先将被删除结点的前驱结点和后继结点链接好再执行删
除结点操作。()

点击查看答案
账号:
你好,尊敬的用户
复制账号
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
欢迎分享答案

为鼓励登录用户提交答案,简答题每个月将会抽取一批参与作答的用户给予奖励,具体奖励活动请关注官方微信公众号:简答题

简答题官方微信公众号

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
简答题
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反简答题购买须知被冻结。您可在“简答题”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
简答题
点击打开微信