第1关:构造函数与析构函数的实现

题目:根据.h写出.cpp 

 

 

 

 

考点: 

1.链表的默认构造, 拷贝构造,传参构造以及析构函数等。

代码:

/********** BEGIN **********/
#include <cstdlib>  
#include <cstring>  
#include "LinkedList.h"  //默认构造函数,构造一个逻辑为空的链表  
LinkedList::LinkedList() {  head = nullptr;  size = 0;  
}  //拷贝构造函数,构造一个逻辑上与参数内容相同的链表  
LinkedList::LinkedList(const LinkedList& rhs) {  Node *p = rhs.head;  head = nullptr;  while (p != nullptr) {  Node *node = new Node(p->data, nullptr);  if (head == nullptr) {  head = node;  } else {  Node *temp = head;  while (temp->next != nullptr) {  temp = temp->next;  }  temp->next = node;  }  p = p->next;  }  size = rhs.size;  
}  //原生数组构造函数,构造一个内容与给定数组相同的链表  
LinkedList::LinkedList(int const a[], int n) {  head = nullptr;  size = 0;  for (int i = 0; i < n; i++) {  Node *node = new Node(a[i], nullptr);  if (head == nullptr) {  head = node;  } else {  Node *temp = head;  while (temp->next != nullptr) {  temp = temp->next;  }  temp->next = node;  }  size++;  }  
}  //填充构造函数,构造一个内容为n个value的链表  
LinkedList::LinkedList(int n, int value) {  head = nullptr;  size = 0;  for (int i = 0; i < n; i++) {  Node *node = new Node(value, nullptr);  if (head == nullptr) {  head = node;  } else {  Node *temp = head;  while (temp->next != nullptr) {  temp = temp->next;  }  temp->next = node;  }  size++;  }  
}  //析构函数,一定要自行实现,否则有内存泄漏  
LinkedList::~LinkedList() {  Node *p = head;  while (p != nullptr) {  Node *temp = p;  p = p->next;  delete temp;  }  
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/143086.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ARM PMU

PMU单元概览 ARM PMU概要 PMU作为一个扩展功能&#xff0c;是一种非侵入式的调试组件。 对PMU寄存器的访问可以通过CP15协处理器指令和Memory-Mapped地址。 基于PMUv2架构&#xff0c;A7处理器在运行时可以收集关于处理器和内存的各种统计信息。对于处理器来说这些统计信息中…

【中间件】ElasticSearch:ES的基本概念与基本使用

ElasticSearch ElasticSearch基本概念 Index索引、Type类型&#xff0c;类似于数据库中的数据库和表&#xff0c;我们说&#xff0c;ES的数据存储在某个索引的某个类型中&#xff08;某个数据库的某个表中&#xff09;&#xff0c;Document文档&#xff08;JSON格式&#xff…

AI:83-基于深度学习的手势识别与实时控制

🚀 本文选自专栏:人工智能领域200例教程专栏 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的代码,详细讲解供大家学习,希望可以帮到大家。欢迎订阅支持,正在不断更新中,…

Zookeeper篇---第十二篇

系列文章目录 文章目录 系列文章目录一、说说 Zookeeper 的 CAP 问题上做的取舍?二、watch 监听为什么是一次性的?一、说说 Zookeeper 的 CAP 问题上做的取舍? 一致性 C:Zookeeper 是强一致性系统,为了保证较强的可用性,“一半以上成功即成功”的数据同 步方式可能会导致…

CSDN每日一题学习训练——Java版(分数到小数、罗马数字转整数、x 的平方根)

版本说明 当前版本号[20231114]。 版本修改说明20231114初版 目录 文章目录 版本说明目录分数到小数题目解题思路代码思路参考代码 罗马数字转整数题目解题思路代码思路参考代码 x 的平方根题目解题思路代码思路参考代码 分数到小数 题目 给定两个整数&#xff0c;分别表示…

【Linux奇遇记】我和Linux的初次相遇

&#x1f308;个人主页: Aileen_0v0 &#x1f525;系列专栏:Linux奇遇记系列专栏&#x1f4ab;"没有罗马,那就自己创造罗马~" 目录 前端和后端的介绍 1.前端 2.后端 3.前后端区别 Linux在前后端开发中的角色 如何学习Linux 去进行程序开发 Linux的常见根目…

爆款元服务!教你如何设计高使用率卡片

元服务的概念相信大家已经在 HDC 2023 上有了很详细的了解&#xff0c;更轻便的开发方式&#xff0c;让开发者跃跃欲试。目前也已经有很多开发者开发出了一些爆款元服务&#xff0c;那么如何让你的元服务拥有更高的传播范围、更高的用户使用率和更多的用户触点呢&#xff1f;设…

Git取消git add命令

三种方法来取消git add命令-git-PHP中文网 亲测有效。

MySQL 索引事务

MySQL 索引&事务 文章目录 MySQL 索引&事务1. 索引1.1 概念1.2 作用1.3 使用场景1.4 使用 2. 事务2.1 为什么使用事务2.2 事务概念2.3 事务的特性2.4 使用 1. 索引 1.1 概念 索引(index)是一种特殊的文件&#xff0c;包含着对数据表里所有记录的引用指针。可以对表中的…

学好Python-新手小白如何做?

新手小白如何学好Python?有哪些参考方法吗?这是一个老生常谈的话题了。今天为大家带来两位前辈的分享&#xff0c;他们给出了非常实用的方法和思路&#xff0c;希望对你有所帮助。 1、多练&#xff0c;两个字&#xff1a;多练 如果真的要说方法可以参考如下&#xff1a; ①…

排查线程阻塞问题

案例代码 package first;import java.util.concurrent.TimeUnit;public class DeadLock {private static volatile Object lock new Object();public static void main(String[] args) {new Thread(() -> {test1();}).start();new Thread(() -> {test2();}).start();}p…

Spring 推断构造方法

文章目录 内容总结实例化 内容总结 实例化 Spring 自行创建 Bean 的规则如下 默认使用无参构造方法, 只有一个有参时用有参, 有多个有参时报错多个有参, 且其中一个上有 Autowired 注解: 用有 Autowired 注解的那个, 且 Spring 自动注入参数值. 注意 Primary/Order/Ordered …

[量化投资-学习笔记015]Python+TDengine从零开始搭建量化分析平台-量化知识点汇总

之前的章节介绍了多个技术分析指标&#xff0c;以下进行一个简单的总结。 看过之前章节的同学就可以不用打开了。 技术指标 MAEMAMACDCCIATRKDJ MA 最基础的技术指标&#xff0c;对一段周期内的收盘价进行简单平均&#xff0c;是一切指标的基础。 def calc_ma(period,ma):ma_…

JAVA中Integer的拆箱与装箱

Integer 字符串与数值 的转换 String str"1000";int i1000;//int --> String//方式一 String s1i"";//int类型加上一个空字符串 返回就是字符串System.out.println(s1);//方式二String s2String.valueOf(i); //调用String的方法valueOf, 将int类型变…

centos下安装mysql8版本

1、如果服务器没有wget&#xff0c;先下载wget工具 sudo yum install wget 2、下载指定mysql版本的tar包 sudo wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.21-1.el7.x86_64.rpm-bundle.tar 3、解压tar包 sudo tar -xvf mysql-8.0.21-1.el7.x86_64.rpm…

《QT从基础到进阶·二十四》按钮组QButtonGroup,单选框QRadioButton和多选框QCheckBox

1、按钮组QButtonGroup 如果有多个单选按钮&#xff0c;可以统一放进一个按钮组。 图中有三个单选按钮放进了一个QGroupBox,并且设置了水平布局&#xff0c;现在要将这三个单选按钮放进一个按钮组&#xff0c;之前的想法是先把三个按钮加入按钮组&#xff0c;再把按钮组放进QG…

cesium api放大缩小地图

方法缩小地图封装api <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Cesium Zoom API</title&…

MATLAB中uiresume函数用法

目录 语法 说明 示例 按下按钮后恢复执行 使用函数调用恢复执行 uiresume函数的功能是恢复暂停程序的执行。 语法 uiresume uiresume(f) 说明 uiresume 恢复与当前图窗 (gcf) 关联的对应 uiwait 调用暂停的程序执行。 uiresume(f) 恢复与图窗 f 关联的对应 uiwait 调用…

开发企业微信群机器人,实现定时提醒

大家好&#xff0c;我是鱼皮&#xff0c;今天分享一个用程序解决生活工作问题的真实案例。 说来惭愧&#xff0c;事情是这样的&#xff0c;在我们公司&#xff0c;每天都要轮流安排一名员工&#xff08;当然也包括我&#xff09;去楼层中间一个很牛的饮水机那里接水。但由于大…

MySQL安装配置与使用教程(2023.11.13 MySQL8.0.35)

CONTENTS 1. MySQL的安装与配置2. MySQL常用操作教程 1. MySQL的安装与配置 MySQL Windows Installer 下载地址&#xff1a;MySQL Installer。 我们下载最新版本&#xff08;目前是8.0.35&#xff09;的安装包&#xff0c;注意要选择更大的那个&#xff0c;名字为 mysql-inst…