当前位置: 首页 > news >正文

[C++][数据结构][算法]单链式结构的深拷贝

深拷贝(deep-copy),区别于浅拷贝,表示复制所有数据,而不是像浅拷贝一般只复制指针。深拷贝的数据不会因原始数据被delete后而消失。

单链式结构可以实现单链表,栈,队列,树等数据结构。掌握了单链式结构的深拷贝,实现其它数据结构的深拷贝就易如反掌了。

单链式结构是这样的:

1 template <class value>
2 struct node {
3   value val;
4   node *next = nullptr;
5 };

定义并初始化list1:

1 typedef node<int> in;
2 in *list1 = new in;
3 // do something
4 // do something else

然后我们又定义了一个单链表list2:

1 in *list2;

深拷贝的实现:

 1 template <class value>
 2 void sldc(node<value> **dst, const node<value> *src) { // single list deep copy
 3   while (*dst) { // clear
 4     auto **tmp = &(*dst)->next;
 5     delete tmp;
 6     dst = tmp;
 7   }
 8   *dst = nullptr;
 9 
10   for (; src; src = src->next, dst = &(*dst)->next) {
11     *dst = new in;
12     (*dst)->val = src->val;
13   }
14 }

转载于:https://www.cnblogs.com/jt2001/p/sldc20150811.html

相关文章:

  • 【数据结构】线性表的单链表存储结构表示和实现
  • mybatis中的$和#的区别
  • 【javascript】用javascript实现的一朵从含苞到绽放的玫瑰
  • 【数据结构】递归求解迷宫问题
  • Java Statement和PreparedStatement性能测试(转)
  • AJAX - 向服务器发送请求
  • PowerShell-第3章 变量与对象
  • JSON
  • 【数据结构】非循环队列
  • 【JavaScript】encodeURI() 函数
  • 【JavaScript】 encodeURI() 函数
  • 关系型数据库跟费关系型数据库区别
  • 使用json往返传输数据 post方法
  • ubuntu下没有中文输入法的解决办法!
  • 【jQuery 遍历】 - map() 方法
  • [笔记] php常见简单功能及函数
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • 4个实用的微服务测试策略
  • CSS 三角实现
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • egg(89)--egg之redis的发布和订阅
  • es的写入过程
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • input的行数自动增减
  • Java教程_软件开发基础
  • vue--为什么data属性必须是一个函数
  • Xmanager 远程桌面 CentOS 7
  • 从输入URL到页面加载发生了什么
  • 分布式事物理论与实践
  • 高度不固定时垂直居中
  • 机器学习学习笔记一
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 微服务核心架构梳理
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 在weex里面使用chart图表
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 浅谈sql中的in与not in,exists与not exists的区别
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ​用户画像从0到100的构建思路
  • #单片机(TB6600驱动42步进电机)
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • $.proxy和$.extend
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (规划)24届春招和25届暑假实习路线准备规划
  • (算法)求1到1亿间的质数或素数
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (转)visual stdio 书签功能介绍
  • (转)详解PHP处理密码的几种方式
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .NET 的静态构造函数是否线程安全?答案是肯定的!