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

广州网站建设报价单/企业信息查询

广州网站建设报价单,企业信息查询,php动态网站开发课后,网页设计要用什么软件二叉树根据左子树、根节点和右子树的相对顺序分为三种遍历方式,这三种遍历方式可通过递归或者迭代(循环)的方式进行。**因为递归使用到的就是栈的思想,所以能够用递归方式实现的算法也能够通过迭代和栈的方式实现。**不过相对于迭…

二叉树根据左子树、根节点和右子树的相对顺序分为三种遍历方式,这三种遍历方式可通过递归或者迭代(循环)的方式进行。**因为递归使用到的就是栈的思想,所以能够用递归方式实现的算法也能够通过迭代和栈的方式实现。**不过相对于迭代的方式,递归方式较为简单。同时,二叉树还有一种层次遍历方式。这几种遍历方式实现代码如下:

1.前序遍历

递归方式:

void preorder(TreeNode* root,vector<int>& vec){if (root != nullptr){vec.push_back(root->val);preorder(root->left, vec);preorder(root->right, vec);}}vector<int> preorderTraversal(TreeNode* root) {vector<int> ans;preorder(root, ans);return ans;}

迭代方式:

vector<int> preorderTraversal(TreeNode* root){vector<int> ans;stack<TreeNode*> stk;TreeNode* t = root;if (root == nullptr)return ans;elsestk.push(t);while (!stk.empty()){t = stk.top();stk.pop();ans.push_back(t->val);if (t->right != nullptr)stk.push(t->right);if (t->left != nullptr)stk.push(t->left);}return ans;}

2.中序遍历

递归方式:

void inorder(TreeNode* root, vector<int> &ans){if (root != nullptr){inorder(root->left, ans);ans.push_back(root->val);inorder(root->right, ans);}}vector<int> inorderTraversal(TreeNode* root) 
{vector<int> ans;inorder(root, ans);return ans;
}

迭代方式:

vector<int> inorderTraversal(TreeNode* root)
{vector<int> ans;stack<TreeNode*> stk;TreeNode* t = root;while (t != nullptr||!stk.empty()){while (t != nullptr){stk.push(t);t = t->left;}t = stk.top();ans.push_back(t->val);stk.pop();t = t->right;}return ans;
}

3.后序遍历

递归方式:

void postorder(TreeNode* root, vector<int> & vec)
{if (root != nullptr){postorder(root->left, vec);postorder(root->right, vec);vec.push_back(root->val);}
}vector<int> postorderTraversal(TreeNode* root) 
{vector<int> ans;postorder(root, ans);return ans;
}

迭代方式:

vector<int> postorderTraversal(TreeNode* root)
{vector<int> ans;stack<TreeNode*> stk;if (root == nullptr)return ans;elsestk.push(root);TreeNode* t = root;while (!stk.empty()){t = stk.top();stk.pop();ans.push_back(t->val);if (t->left != nullptr)stk.push(t->left);if (t->right != nullptr)stk.push(t->right);}reverse(ans.begin(), ans.end());return ans;
}

4.层次遍历–迭代方式

vector<vector<int>> levelOrder(TreeNode* root) 
{vector<vector<int>> ans;queue<TreeNode*> que;if (root == nullptr)return ans;elseque.push(root);TreeNode* t = root;while (!que.empty()){vector<int> sub;int size = que.size();for (int i = 0; i < size; ++i){t = que.front();sub.push_back(t->val);que.pop();if (t->left != nullptr)que.push(t->left);if (t->right != nullptr)que.push(t->right);}ans.push_back(sub);}return ans;
}
http://www.lbrq.cn/news/1414819.html

相关文章:

  • 网站开发可以做什么/北京seo邢云涛
  • 通过身份证号查房产/网站seo公司
  • 简单的公司网站系统/秦洁婷seo博客
  • 天翼云主机 网站服务器/百度手机怎么刷排名多少钱
  • 浙江省建设厅官方网站/seo排名软件免费
  • 做一个动态网站多少钱/网站如何才能被百度收录
  • 分销/郑州seo优化外包公司
  • 江阴网络公司做网站/百度站长工具使用方法
  • 青海网站建设公司/网页设计制作网站html代码大全
  • ppt模板怎么做 下载网站/新闻稿范文300字
  • 网站logo怎么改/网站推广要点
  • 做网站的代码难吗/软文推广文案范文
  • 怎么做旅游网站推广/windows优化大师如何卸载
  • 破解php网站后台密码/nba最新排名
  • 做网站需要哪些流程/充电宝关键词优化
  • 黄岛网站建设/天堂tv在线观看
  • 做网站是怎么赚钱的/辅导机构
  • 如果一个网站没有备案/今日预测足球比分预测
  • 建行网站会员是什么/广州网站推广服务
  • 大连公司名称大全/河北seo
  • 口碑好的网站建设哪家好/网络seo优化推广
  • 淮安做网站的公司/最近的国际新闻
  • 网站设计与制作/百度推广如何获取精准的客户
  • 政府门户网站 建设方案/南通百度seo代理
  • 一个主机可以建设多少个网站/站长工具seo推广 站长工具查询
  • 青岛网站改版/谷歌seo排名优化
  • 郑州网站设计收费低/网站百度收录
  • 多个网站一个域名/百度关键词搜索指数查询
  • 菠菜彩票网站怎么建设/二级域名查询网站
  • 美食网站开发的目标/个人对网络营销的看法
  • Elasticsearch倒排索引和排序
  • 结合 Flutter 和 Rust 的跨平台开发方案
  • 数据安全管理——解读银行保险机构数据安全管理办法【附全文阅读】
  • 深入理解与应用向量嵌入(Vector Embeddings):原理、实现与多场景实践
  • IDM 下载失败排查全攻略
  • 为了更强大的空间智能,如何将2D图像转换成完整、具有真实尺度和外观的3D场景?