题目详情
当前位置:首页 > 计算机考试 > 中级软件设计师
题目详情:
发布时间:2023-10-04 20:34:02

[单项选择]字符串采用链表存储方式时,每个结点存储多个字符有助于提高存储密度。若采用结点大小相同的链表存储串,则在串比较、求子串、串连接、串替换等串的基本运算中,()。
A. 进行串的比较运算最不方便
B. 进行求子串运算最不方便
C. 进行串连接最不方便
D. 进行串替换最不方便

更多"字符串采用链表存储方式时,每个结点存储多个字符有助于提高存储密度。若采"的相关试题:

[填空题]已知head指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。以下函数求出链表中所有链结点数据域的和值,作为函数值返回。请在下划线内填入正确内容。
int data;struct link*next;
main( )
struct link*head;

sum(head);

sum( 【19】 );
struct link*p;int s=0;
p=head->next;
while(p)s+=p->data;p=p->next;
return(s);
[填空题]已知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);
[单项选择]双链表的每个结点包括两个指针域。其中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↑.Ilink;
C. q↑.llink:=p;q↑.rlink:=p↑.rlink;p↑.rlink↑.llink:=q;p↑.rlink:=q;
D. q↑.rlink:=p;q↑.llink:=p↑.llink;p↑.llink↑.rlink:=q;p↑.llink:=q;
[填空题]以下程序实现带有头结点的单链表的建立,链表中每个结点包含数据域data(字符型)和指针域next,所建立链表的头指针由参数phd传回调用程序。在空格处填入正确内容。
# include<stdio.h>
# include<stdlib, h>
struct node
char data;
struct node * next;
;
void creatlist( 【18】 )

char ch;
struct node * s, * r;
* phd= malloc( sizeof (struct node));
r= * phd;
ch=getchar( );
while(ch !=’@’)
s = malloc(sizeof(struct node));
s->data=ch;
r->next=s;
r=s;
ch= getchar( );
;
r->next= 【19】

main ( )

struct node * head;
head= NULL;
creatlist( 【20】 )

[填空题]在双链表中每个结点有两个指针域:一个指向 【3】 ,另一个指向 【4】
[简答题]【说明】 设有一个带表头结点的双向循环链表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"); /*没找到*/

[填空题]在双链表中,每个结点有两个指针域,一个指向前驱结点,另一个指向 【2】

我来回答:

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

订单号:

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