logo
  • write-homewrite-home-active首页
  • icon-chaticon-chat-activeAI 智能助手
  • icon-pluginicon-plugin-active浏览器插件
  • icon-subjecticon-subject-active学科题目
  • icon-uploadicon-upload-active上传题库
  • 更多功能
  • icon-appicon-app-active手机APP
首页
/
计算机
题目

尾插法建立单链表[1](带头结点[2]),请补充以下代码:(注意不要有多余的空格和分号,注意大小写,空用NULL表达)typedef struct LNode ( int data; struct LNode *next;) LNode, *LinkList;void CreateList_Tail(LinkList &L, int n) ( / 建立带表头结点的单链表L,并初始化 L = (LinkList)malloc(sizeof(LNode)); L->next = NULL; LNode *r = L; / r指向尾结点 for (int i = 0; i < n; i++) { LNode *p = (LNode*)malloc(sizeof(LNode)); scanf("%d", &(p->data)); / 填空1: 将新结点p插入到r之后 ________; / 填空2: 更新尾指针r ________; ) / 填空3: 尾结点指针域置空 ________;}

尾插法建立单链表[1](带头结点[2]),请补充以下代码:(注意不要有多余的空格和分号,注意大小写,空用NULL表达)

typedef struct LNode {
int data;
struct LNode *next;
} LNode, *LinkList;

void CreateList_Tail(LinkList &L, int n) {
// 建立带表头结点的单链表L,并初始化
L = (LinkList)malloc(sizeof(LNode));
L->next = NULL;
LNode *r = L; // r指向尾结点
for (int i = 0; i < n; i++) {
LNode *p = (LNode*)malloc(sizeof(LNode));
scanf("%d", &(p->data));
// 填空1: 将新结点p插入到r之后
________;
// 填空2: 更新尾指针r
________;
}
// 填空3: 尾结点指针域置空
________;
}

题目解答

答案

根据题目要求,尾插法建立单链表(带头结点),需要完成以下步骤: 1. 初始化头结点 `L`,并设置 `L->next = NULL`。 2. 使用指针 `r` 指向当前尾结点(初始为 `L`)。 3. 循环读取 `n` 个元素,每次创建新结点 `p`,将其插入到 `r` 之后,并更新 `r` 指针。 4. 最后,将尾结点的 `next` 指针置为 `NULL`。 具体填空如下: - 填空1:将新结点 `p` 插入到 `r` 之后,即 `r->next = p`。 - 填空2:更新尾指针 `r`,即 `r = p`。 - 填空3:尾结点指针域置空,即 `r->next = NULL`。 完整代码如下: ```c typedef struct LNode { int data; struct LNode *next; } LNode, *LinkList; void CreateList_Tail(LinkList &L, int n) { L = (LinkList)malloc(sizeof(LNode)); L->next = NULL; LNode *r = L; // r指向尾结点 for (int i = 0; i < n; i++) { LNode *p = (LNode *)malloc(sizeof(LNode)); scanf("%d", &(p->data)); r->next = p; // 将新结点p插入到r之后 r = p; // 更新尾指针r } r->next = NULL; // 尾结点指针域置空 } ```

解析

本题考查尾插法建立带头结点的单链表的知识。解题思路如下:

  1. 首先,要初始化一个带头结点的单链表。通过 L = (LinkList)malloc(sizeof(LNode)); 为头结点分配内存,并且将头结点的 next 指针初始化为 NULL,即 L->next = NULL;。同时,使用指针 r 指向当前的尾结点,初始时尾结点就是头结点,所以 LNode *r = L;。
  2. 接着,进入循环读取 n 个元素。在每次循环中,创建一个新的结点 p,使用 LNode *p = (LNode*)malloc(sizeof(LNode)); 为其分配内存,然后通过 scanf("%d", &(p->data)); 读取用户输入的数据存储到新结点的 data 域。
  3. 对于填空1,要将新结点 p 插入到尾结点 r 之后。在单链表中,一个结点的 next 指针指向下一个结点,所以将 r 的 next 指针指向新结点 p,即 r->next = p;。
  4. 对于填空2,当新结点 p 插入到 r 之后后,p 就成为了新的尾结点,所以需要更新尾指针 r,让 r 指向新的尾结点 p,即 r = p;。
  5. 最后,当所有元素都插入到链表中后,对于填空3,需要将尾结点的 next 指针置为空,以表示链表的结束,即 r->next = NULL;。

相关问题

  • 3.判断题K-means聚类算法对数据的尺寸敏感。()A. 对B. 错

  • 下列哪项贪婪最佳优先搜索算法的描述正确()A. 贪婪最佳优先搜索不属于启发式搜索算法B. 贪婪最佳优先搜索是一种A*搜索算法C. 贪婪最佳优先搜索是一种广度优先搜索算法D. 贪婪最佳优先搜索属于有信息搜索算法

  • Windows中“复制”操作的快捷键是Ctrl+V。

  • 下列哪项不是求解对抗搜索问题的基本算法( ) A.反向传播算法 B.广度优先排序算法 C.Alpha-Beta剪枝算法D.最小最大搜索算法

  • 下列哪项关于监督学习算法的描述正确()A. 强化学习的训练效果一定优于监督学习B. 主要的监督学习方法包括生成方法和判别方法C. 广度优先搜索算法是一种监督学习算法

  • 网络安全包括物理安全[1]、逻辑安全、操作系统安全及联网安全,其中逻辑安全包括访问控制[2]、加密、安全管理及用户身份认证。A. 正确B. 错误

  • 8、信息安全“三个不发生”不包括( )。单选题Box 确保不发生大面积信息系统故障停运事故Box 确保不发生恶性信息泄密事故Box 确保不发生信息外网网站被恶意篡改事故Box 确保不发生信息内网非法外联事故

  • 7、 加强电脑安全防护,及时升级病 毒库,安装防火墙,及时查杀病毒和木马,是防范 电信网络诈骗的有效做法。A. 正确B. 错误

  • 以下哪种方法属于卷积神经网络的基本组件()。A. 卷积层B. 池化层C. 激活函数D. 复制层

  • 下列哪个方法属于知识图谱推理方法()A. 路径排序算法B. 深度学习推断C. 广度优先搜索D. 归纳逻辑程序设计

  • 4/5 以下属于人工智能实际应用的是()。A. 机器视觉B. 人脸识别C. 计算机辅助自动规划D. 智能工业机器人E. 刷卡门禁

  • 2、网络安全工作的目标包括:()。A. 信息机密性B. 信息完整性C. 服务可用性D. 以上都是

  • 下列哪项属于因果推理模型()A. 因果图B. 神经符号推理C. 符号推理模型D. 结构因果模型

  • 程序=算法+()A. 数据结构B. 程序结构C. 控制结构[1]D. 体系结构

  • AdaBoosting采用多个单一分类器组成一个强分类器()A. 错误B. 正确

  • 网络安全包括物理安全[1]、逻辑安全、操作系统安全及联网安全,其中逻辑安全包括访问控制[2]、加密、安全管理及用户身份认证。A. 正确B. 错误

  • 下列不属于量子机器学习算法的是()A. 量子支持向量机B. 量子主成分分析C. 薛定谔方程求解D. 深度量子学习

  • 由脸书(Facebook)公司开发的深度学习编程框架是()A. TensorFlowB. PaddlePaddleC. PyTorchD. Mindspore

  • 9、不在网络安全的基本属性范围内的()。A. 机密性B. 可用性C. 完整性D. 多样性

  • 1、网上银行系统的一次转账操作过程中发生了转账金额被非法篡改的行为,这破坏了信息安全的()属性。A. 完整性B. 保密性C. 不可否认性D. 可用性

上一页下一页
logo
广州极目未来文化科技有限公司
注册地址:广州市黄埔区揽月路8号135、136、137、138房
关于
  • 隐私政策
  • 服务协议
  • 权限详情
学科
  • 医学
  • 政治学
  • 管理
  • 计算机
  • 教育
  • 数学
联系我们
  • 客服电话: 010-82893100
  • 公司邮箱: daxuesoutijiang@163.com
  • qt

©2023 广州极目未来文化科技有限公司 粤ICP备2023029972号    粤公网安备44011202002296号