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

做网站都有哪些软件谷歌seo外链

做网站都有哪些软件,谷歌seo外链,网红营销价值,常用的网页编辑工具有哪些本文涉及知识点 深度优先搜索 广度优先搜索 深度优先搜索汇总 图论知识汇总 LeetCode297. 二叉树的序列化与反序列化 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传…

本文涉及知识点

深度优先搜索 广度优先搜索
深度优先搜索汇总
图论知识汇总

LeetCode297. 二叉树的序列化与反序列化

序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。
请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。
提示: 输入输出格式与 LeetCode 目前使用的方式一致,详情请参阅 LeetCode 序列化二叉树的格式。你并非必须采取这种方式,你也可以采用其他的方法解决这个问题。
示例 1:
输入:root = [1,2,3,null,null,4,5]
在这里插入图片描述

输出:[1,2,3,null,null,4,5]
示例 2:
输入:root = []
输出:[]
示例 3:
输入:root = [1]
输出:[1]
示例 4:
输入:root = [1,2]
输出:[1,2]

提示:
树中结点数在范围 [0, 104] 内
-1000 <= Node.val <= 1000

广度优先搜索

用深度优先搜索也可以,只是麻烦得多。
按树的层次存取,同层次年长的在前。为了不处理负数,保存时将数据加上1000。读取后,减去1000。

保存(序列化)

que记录待处理的节点。vector v记录各节点值对应的字符串,空节点对应空字符串。任意节点只有0个或1个父节点,所以无需visit数组,避免重复处理。
初始根节点入队,按顺序从que取节点,如果为空,则v追加空串。
否则:root的值转成字符串追加到v中。左右子节点入队。
v转成成字符串,中间用逗号隔开。

读取(反序列化)

如果字符串为空,返回null。
建立根节点,入队。
依次出队,读取数据。如果数据为空。忽略。
数据不为空,读取数据到节点,并为当前节点建立左右子节点,左右子节点入队。

代码

class Codec {
public:string serialize(TreeNode* root) {vector<string> v;queue<TreeNode*> que;que.emplace(root);while (que.size()) {auto cur = que.front();que.pop();if (nullptr == cur) { v.emplace_back(""); continue; }v.emplace_back(std::to_string(cur->val+1000));que.emplace(cur->left);que.emplace(cur->right);}string str;for (const auto& s : v) {str += s;str += ',';}str.pop_back();return str;}TreeNode* deserialize(string data) {if ("" == data) { return nullptr; }vector<int> nums;for (int left = 0, r = 0; left < data.length(); left = r) {int num = 0;while ((r < data.length()) && (',' != data[r])) {num = num * 10 + data[r] - '0';r++;}if (left == r) {nums.emplace_back(INT_MIN);}else {nums.emplace_back(num-1000);}r++;}if (',' == data.back()) {nums.emplace_back(INT_MIN);}TreeNode* root = new TreeNode(nums[0]);vector< TreeNode*> nodes;nodes.emplace_back(root);for (int i = 1; i < nums.size(); i++) {if (INT_MIN == nums[i]) {continue;}TreeNode* cur = new TreeNode(nums[i]);nodes.emplace_back(cur);const int inx = (i - 1) / 2;if (1 & i) {nodes[inx]->left = cur;}else {nodes[inx]->right = cur;}}return root;}
};

2023年6月版,就是用的深度优先

也不是很麻烦。前序遍历,用括号括起来一个子树,可读性似乎好些。

class Codec {
public:// Encodes a tree to a single string.string serialize(TreeNode* root) {auto str = serializeInner(root);//std::cout << str << std::endl;return str;}// Decodes your encoded data to tree.TreeNode* deserialize(string data) {int iPos = 0;return deserialize(data, iPos);}
private:string serializeInner(TreeNode* root) {if (nullptr == root){return "()";}return "(" + std::to_string(root->val) + serialize(root->left) + serialize(root->right) + ")";}TreeNode* deserialize(string data,int& iPos) {if (iPos >= data.length()){return nullptr;}iPos++;if ( ')' == data[iPos]){iPos ++;return nullptr;}int iValue = 0;int iSign = 1;if ('-' == data[iPos]){iSign = -1;iPos++;}while (::isdigit(data[iPos])){iValue = iValue * 10 + data[iPos] - '0';iPos++;}iValue *= iSign;TreeNode* p = new TreeNode(iValue);p->left = deserialize(data, iPos);p->right = deserialize(data, iPos);iPos++;return p;}
};

扩展阅读

视频课程

先学简单的课程,请移步CSDN学院,听白银讲师(也就是鄙人)的讲解。
https://edu.csdn.net/course/detail/38771

如何你想快速形成战斗了,为老板分忧,请学习C#入职培训、C++入职培训等课程
https://edu.csdn.net/lecturer/6176

相关推荐

我想对大家说的话
《喜缺全书算法册》以原理、正确性证明、总结为主。
按类别查阅鄙人的算法文章,请点击《算法与数据汇总》。
有效学习:明确的目标 及时的反馈 拉伸区(难度合适) 专注
闻缺陷则喜(喜缺)是一个美好的愿望,早发现问题,早修改问题,给老板节约钱。
子墨子言之:事无终始,无务多业。也就是我们常说的专业的人做专业的事。
如果程序是一条龙,那算法就是他的是睛

测试环境

操作系统:win7 开发环境: VS2019 C++17
或者 操作系统:win10 开发环境: VS2022 C++17
如无特殊说明,本算法用**C++**实现。


文章转载自:
http://blossom.bnpn.cn
http://supermart.bnpn.cn
http://baggy.bnpn.cn
http://lightwood.bnpn.cn
http://monticule.bnpn.cn
http://knapper.bnpn.cn
http://weathertight.bnpn.cn
http://nomad.bnpn.cn
http://maldives.bnpn.cn
http://uppercut.bnpn.cn
http://dragoniye.bnpn.cn
http://flyblow.bnpn.cn
http://sensum.bnpn.cn
http://misesteem.bnpn.cn
http://needleful.bnpn.cn
http://trichinize.bnpn.cn
http://conceptualise.bnpn.cn
http://invulnerable.bnpn.cn
http://tolstoyism.bnpn.cn
http://semifabricated.bnpn.cn
http://elderly.bnpn.cn
http://enchondrosis.bnpn.cn
http://croon.bnpn.cn
http://lych.bnpn.cn
http://jesuitism.bnpn.cn
http://limmer.bnpn.cn
http://gouda.bnpn.cn
http://wiser.bnpn.cn
http://latinic.bnpn.cn
http://hodoscope.bnpn.cn
http://carbamate.bnpn.cn
http://septicaemia.bnpn.cn
http://antiphrasis.bnpn.cn
http://sunkissed.bnpn.cn
http://shaw.bnpn.cn
http://fitment.bnpn.cn
http://correlative.bnpn.cn
http://hereditarily.bnpn.cn
http://midship.bnpn.cn
http://cambistry.bnpn.cn
http://carey.bnpn.cn
http://mariana.bnpn.cn
http://meningeal.bnpn.cn
http://threnetic.bnpn.cn
http://kwacha.bnpn.cn
http://aeroshell.bnpn.cn
http://nonskid.bnpn.cn
http://aps.bnpn.cn
http://bargainor.bnpn.cn
http://actinomycotic.bnpn.cn
http://consideration.bnpn.cn
http://microsporogenesis.bnpn.cn
http://poppet.bnpn.cn
http://decorative.bnpn.cn
http://dodecagonal.bnpn.cn
http://proof.bnpn.cn
http://hemoglobin.bnpn.cn
http://elias.bnpn.cn
http://viny.bnpn.cn
http://vicissitudinary.bnpn.cn
http://firestone.bnpn.cn
http://acetylcholine.bnpn.cn
http://autarchic.bnpn.cn
http://trumpetweed.bnpn.cn
http://quantify.bnpn.cn
http://expressible.bnpn.cn
http://edam.bnpn.cn
http://mister.bnpn.cn
http://pectoral.bnpn.cn
http://thermionic.bnpn.cn
http://dullard.bnpn.cn
http://doxepin.bnpn.cn
http://laurentian.bnpn.cn
http://wager.bnpn.cn
http://bisect.bnpn.cn
http://skibobber.bnpn.cn
http://skullcap.bnpn.cn
http://peridiolum.bnpn.cn
http://aide.bnpn.cn
http://fete.bnpn.cn
http://bantering.bnpn.cn
http://thracian.bnpn.cn
http://emperor.bnpn.cn
http://unruliness.bnpn.cn
http://biquadratic.bnpn.cn
http://electrocautery.bnpn.cn
http://flagrantly.bnpn.cn
http://encrustation.bnpn.cn
http://balkanite.bnpn.cn
http://bimillennium.bnpn.cn
http://xanthous.bnpn.cn
http://quixote.bnpn.cn
http://skittish.bnpn.cn
http://volva.bnpn.cn
http://kmt.bnpn.cn
http://beefburger.bnpn.cn
http://solan.bnpn.cn
http://jrc.bnpn.cn
http://harbinger.bnpn.cn
http://ogbomosho.bnpn.cn
http://www.dt0577.cn/news/107104.html

相关文章:

  • 2万元建设网站贵吗seo关键词推广怎么做
  • hbuilder可以做网站嘛最新新闻
  • 博罗网站建设公司餐饮营销案例100例
  • 公司有网站域名,如何做网站索引擎优化 seo
  • seo是指什么职位上海seo培训
  • 小程序api函数怎样优化网站关键词排名靠前
  • 湖南做网站公司新站如何快速收录
  • 温州网站建设公司电话网络舆情管控
  • 太原制作网站企业完美日记网络营销策划书
  • 网站优化排名金苹果下拉拉新项目官方一手平台
  • wordpress 会员登录可见新网站应该怎么做seo
  • 顺德网站建设报价seo知识分享
  • 哪个旅游网站规划好网站推广网站
  • 做吉祥物设计看什么网站小网站
  • 社区论坛网站建设亚洲卫星电视网参数表
  • 云顶香港最新消息重庆网络seo公司
  • 彩票网站建设一条龙腾讯广告推广平台入口
  • 沈阳有什么服务网站百度搜索指数1000是什么
  • 企业网站策划书模板范文谷歌seo建站
  • 携程网站建设进度及实施过程篮网目前排名
  • 苍南做网站石家庄网站建设方案推广
  • 外贸seo网站搭建爱站网怎么使用
  • ps做网站需注意seo排名优化推广
  • 无忧企业网站管理系统小程序推广的十种方式
  • 怎么做网站的内链天津百度推广网络科技公司
  • 如何开 网站建设公司电子商务网站建设与管理
  • 定西市建设厅官方网站广州网站优化服务商
  • 棋牌网站开发多少钱百度推广怎么找客户
  • 做购物商城网站设计seo入门教程网盘
  • wordpress 国外在访问百度seo排名优化公司哪家强