题目详情
当前位置:首页 > 职业培训考试
题目详情:
发布时间:2023-12-08 21:51:11

[简答题]分别写出删除单向和双向循环链表中指针P所指的结点的直接后继结点(非尾结点)对应的语句。
(1)单向循环链表。
(2)双向循环链表。

更多"分别写出删除单向和双向循环链表中指针P所指的结点的直接后继结点(非尾结"的相关试题:

[填空题]删除双向循环链表中*p的前驱结点(存在)应执行的语句是______。
[简答题]【说明】 设有一个带表头结点的双向循环链表L,每个结点有4个数据成员:指向前驱结点的指针prior、指向后继结点的指针next、存放数据的成员data和访问频度freq。所有结点的freq初始时都为0。每当在链表上进行一次L.Locate(x)操作时,令元素值x的结点的访问频度 freq加1,并将该结点前移,链接到现它的访问频度相等的结点后面,使得链表中所有结点保持按访问频度递减的顺序排列,以使频繁访问的结点总是靠近表头。 【函数】 void Locate( int &x) { <结点类型说明> * p =first -> next; while(p!=frist&& (1) )P=P->next; if(p! =first) /*链表中存在x*/ { (2) ; <结点类型说明> * current = P; /*从链表中摘下这个结点*/ Current -> prior -> next = current -> next; Current -> next -> prior = current -> prior; P = current -> prior; /*寻找重新插入的位置*/ While(p! =first && (3) )p=p->prior; Current-> next = (4) ; /*插入在P之后* Current -> prior = P; P -> next -> prior = current; P->next= (5) ; } else printf("Sorry. Not find! /n"); /*没找到*/ }
[简答题]【说明】
设有一个带表头结点的双向循环链表L,每个结点有4个数据成员:指向前驱结点的指针prior、指向后继结点的指针next、存放数据的成员data和访问频度freq。所有结点的freq初始时都为0。每当在链表上进行一次L.Locate(x)操作时,令元素值x的结点的访问频度 freq加1,并将该结点前移,链接到现它的访问频度相等的结点后面,使得链表中所有结点保持按访问频度递减的顺序排列,以使频繁访问的结点总是靠近表头。
【函数】
void Locate( int &x)
<结点类型说明>
* p =first -> next;
while(p!=frist&& (1) )P=P->next;
if(p! =first) /*链表中存在x*/
(2) ;
<结点类型说明>
* current = P; /*从链表中摘下这个结点*/
Current -> prior -> next = current -> next;
Current -> next -> prior = current -> prior;
P = current -> prior; /*寻找重新插入的位置*/
While(p! =first && (3) )p=p->prior;
Current-> next = (4) ; /*插入在P之后*
Current -> prior = P;
P -> next -> prior = current;
P->next= (5) ;

else printf("Sorry. Not find! /n"); /*没找到*/

[填空题] 假设某个不设头指针的无头结点单向循环链表的长度大于1,S为指向链表中某个结点的指针。算法f30的功能是,删除并返回链表中指针S所指结点的前驱。请在空缺处填入合适的内容,使其成为完整的算法。
typedef struct node{
DataType data;
struct node *next;
}*LinkList;
DataType f 30(LinkList s){
LinkList pre,p;
DataType e;
pre=s;
p=s—>next;
while( (1) ){
pre=p;
(2)
}
pre—>next= (3) ;
e=p—>data;
free(p);
return e;
} (1)
[填空题]带头结点的双向循环链表L为空的条件是______。
[填空题]双向循环链表找前驱结点和后继结点的时间复杂度为______。
[单项选择]与单向链表相比,双向链表()
A. 需要较少的存储空间
B. 遍历元素需要的时间较短
C. 较易于访问相邻结点
D. 较易于插入和删除元素
[填空题]以下函数creat用来建立一个带头结点的单向链表,新产生的结点总是插在链表的末尾。单向链表的头指针作为函数值返回。请填空。 #include <stdio.h> struct list { char dara; struct list *next; }; struct list *creat( ) { struct list *h,*p,*q; char ch; h= (struct list (*) malloc (sizeof (struct list)); ______; ch=getchar( ); while(ch!=’’) { p=(struct list*) malloc) sizeof (struct list)); p->data=ch; ______; q=p; ch=getchar( ); } p->next=’/0’; ______: }
[填空题]以下函数creat用来建立一个带头结点的单向链表,新产生的结点是插在链表头的
末尾。单向链表的头指针作为函数值返回。请填空。
# include<stdio.h>
struct list
char data;
struct list * next;

struct list * creat;
struct list * h,* p,* q;
char ch;
h=(______)malloc ( sizeof(struct list));
p=q=h;
ch=getchar( );
while(ch!=’’)
p=(______)mallco(sizeof(struct list));
p->data=ch;
q->next=p;
q=p;
ch=getchar( );

p->next=’/0’;
______;

[填空题]已知h1和h2为两个单向链表的头指针,h1指向的链表不为空链表。add函数的功能是将h2指向的链表(简称h2链表)中全部结点插入到h1指向的链表(简称h1链表)中第n个结点(n>0)之后,如果h2链表为空链表,则函数直接返回h1链表首结点的地址。如果h1链表中不存在第n个结点,则将h2链表中全部结点添加到h1链表的末尾,函数返回h1链表首结点地址.链表结点采用如下形式的数据结构: struct node { int data; struct node *next; }; #include struct node *add(struct node *h1,struct node *h2,int n) {struct node *p1=h1,*q=h2,*p2; int i=0; if(h2==___(27)___) return h1; p2=h1; while(p1&&inext; ___(28)___; } if(inext=q; else { ___(29)___=q; while(q->next) q=q->next; q->next=___(30)___; } return h1; }
[填空题]已知bead指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。以下函数求出链表中所有连接点数据域的和值作为函数值返回。请在横线处填入正确内容。
int data; struct link *next;
main( )
struct link *head;
sam(______);
stmct link *p;int s=0;
p=head->next;
while(p)s+=p->data;p=p->next;
return(s);
[单项选择]在双向链表中删除指针p所指的结点(pre和next,是结点的指针域,pre指向结点的前驱,next指向结点的后继),则需要执行( )。
A. p↑.next:=p↑.pre;p↑.pre:=p;
B. p↑.next↑.pre:=p↑.pre;p↑.pre↑.next:=p;
C. p↑.pre:=p↑.next;p↑.next=p↑.pre;
D. p↑.pre↑.next:=p↑.next;p↑.next↑.pre:=p↑.pre;
[单项选择]某单循环链表头指针为head且表长大于1,指针p指向表中某个结点,若p→next→next= head,则 (11)
A. p指向头结点
B. p指向尾结点
C. *p的直接后继是头结点
D. *P的直接后继是尾结点
[单项选择]对于线性表(由n个同类元素构成的线性序列),采用单向循环链表存储的特点之一是()。
A. 从表中任意结点出发都能遍历整个链表
B. 对表中的任意结点可以进行随机访问
C. 对于表中的任意一个结点,访问其直接前驱和直接后继结点所用时间相同
D. 第一个结点必须是头结点

我来回答:

购买搜题卡查看答案
[会员特权] 开通VIP, 查看 全部题目答案
[会员特权] 享免全部广告特权
推荐91天
¥36.8
¥80元
31天
¥20.8
¥40元
365天
¥88.8
¥188元
请选择支付方式
  • 微信支付
  • 支付宝支付
点击支付即表示同意并接受了《购买须知》
立即支付 系统将自动为您注册账号
请使用微信扫码支付

订单号:

请不要关闭本页面,支付完成后请点击【支付完成】按钮
恭喜您,购买搜题卡成功
重要提示:请拍照或截图保存账号密码!
我要搜题网官网:https://www.woyaosouti.com
我已记住账号密码