题目详情
当前位置:首页 > 计算机考试 > 中级软件设计师
题目详情:
发布时间:2024-03-20 20:16:47

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

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

[单项选择]双链表的每个结点包括两个指针域。其中rlink指向结点的后继,llink指向结点的前驱。如果要在p所指结点前面插入q所指的新结点,下面哪一个操作序列是正确的( )
A. p↑.rlink↑.1link:=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↑.llink;
C. q↑.llink:=p;q↑.llink:=p↑.rlink;p↑.rlink↑.llink:=q;p↑.rlink:=q;
D. q↑.rlink:=p;q↑.llink:=p↑.llink;p↑.llink↑.rlink:=q;p↑.llink:=q;
[填空题]一棵具有n个结点的二叉树,采用二叉链表存储,则二叉链表中指向孩子结点的指针有_________个。
[单项选择]在单链表中,存储每个结点需要有两个域,一个是数据域,另一个是指针域,该指针域用于存放一个指针,此指针指向该结点的( )
A. 直接前驱
B. 直接后继
C. 开始结点
D. 终端结点
[简答题]【说明】 设有一个带表头结点的双向循环链表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】
[填空题]在双链表中,每个结点有两个指针域,一个指向前驱结点,另一个指向上 【2】
[填空题]在双向链表中,每个结点都含有两个指针域,它们一个指向其前驱结点,另一个指向其______结点。
[填空题]在双向链表中,每个结点含有两个指针域,一个指向其______结点,另一个指向______结点。
[多项选择]设有一个双向链表h,每个结点中除有prior、data和next共3个域外,还有一个访问频度域freq,在链表被起用之前,每个结点中的freq域的值均被初始化为零。每当进行LocateNode(h,x)运算时,令元素值为x的结点中freq域的值加1,并调整表中结点的次序,使其按访问频度的递减序列排序,以便使频繁访问的结点总是靠近表头。试写一符合上述要求的LocateNode运算的算法。
[单项选择]线性表采用链式存储时,结点的存储地址()
A. 必须是不连续的
B. 连续与否均可
C. 必须是连续的
D. 和头结点的存储地址相连续
[单项选择]单向链表的每一个结点都有一个指向它的后续结点的指针link,现有结点p和q,结点q在结点p的前面,要删除结点P,正确的操作应该是()
A. q↑.link:=p↑.link;
B. p↑.link:=q↑.link;
C. q↑.link:=p;p↑.link:=q;
D. q:=p↑.link;p↑.link:=q↑.link;
[单项选择]线性表若采用链表存储结构,要求内存中可用存储单元地址 (35)
A. 必须连续
B. 部分地址必须连续
C. 一定不连续
D. 连续不连续均可
[填空题]在双链表中,每个结点有两个指针域,一个指向______,另一个指向______。

我来回答:

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

订单号:

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