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

wordpress图片滑动宁波seo网络推广

wordpress图片滑动,宁波seo网络推广,云南专业做网站多少钱,设计培训班大概多少钱首先我们要了解二叉树的数据结构是什么&#xff0c;本质上二叉树是一个有两个节点的链表&#xff0c;我们先了解的单链表的相关定义 单链表 创建一个朴素的单链表 #include <iostream>using namespace std;struct Node{int val;Node* next;Node(int x) : val(x), next(…

首先我们要了解二叉树的数据结构是什么,本质上二叉树是一个有两个节点的链表,我们先了解的单链表的相关定义

单链表

创建一个朴素的单链表

#include <iostream>using namespace std;struct Node{int val;Node* next;Node(int x) : val(x), next(nullptr) {}
};int main()
{return 0;
}
Node(int value) : data(value), next(nullptr) {}
  1. 构造函数定义: Node(int value) 是构造函数的声明,它接受一个 int 类型的参数 value

  2. 成员初始化列表: : data(value), next(nullptr) 是成员初始化列表,用于初始化类成员。

    • data(value) 将构造函数的参数 value 赋给 data 成员变量。
    • next(nullptr)next 指针初始化为 nullptr,表示该节点最初不指向任何其他节点。
  3. 空体: {} 表示构造函数的主体,这里是空的,因为所有初始化工作都在成员初始化列表中完成了。

简而言之,这个构造函数创建一个 Node 对象时,设置 data 为提供的 value 值,而 next 则默认指向空,表示没有下一个节点。

创建一颗二叉树

比如我想要创建一颗这样的二叉树

在结构体当中定义两个结点,并且初始化这棵树

#include <iostream>using namespace std;struct TreeNode{int val;TreeNode* left;TreeNode* right;TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};// 初始化
void init(TreeNode* root){root -> left = new TreeNode(2);root -> right = new TreeNode(3);root -> left -> left = new TreeNode(4);root -> left -> right = new TreeNode(5);root -> right -> left = new TreeNode(6);root -> right -> right = new TreeNode(7);
}int main()
{// 初始化根节点是1TreeNode* root = new TreeNode(1); init(root);return 0;
}

前序遍历、中序遍历、后序遍历

这里是利用了递归的思想,详细请看洛谷B3642 二叉树的遍历(前序、中序、后序)-CSDN博客

前序的代码如下,中序、后序就不展示了

#include <iostream>using namespace std;struct TreeNode{int val;TreeNode* left;TreeNode* right;TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};// 初始化
void init(TreeNode* root){root -> left = new TreeNode(2);root -> right = new TreeNode(3);root -> left -> left = new TreeNode(4);root -> left -> right = new TreeNode(5);root -> right -> left = new TreeNode(6);root -> right -> right = new TreeNode(7);
}void dfs(TreeNode* root){if(root == nullptr) return;cout << root -> val << " ";dfs(root -> left);dfs(root -> right);
}int main()
{// 初始化根节点是1TreeNode* root = new TreeNode(1); init(root);dfs(root);return 0;
}

层次遍历

这里讲一下层次遍历以上面那棵树为例

首先要对队列很熟悉,层次遍历是每一层从左往右依此遍历,那么这棵树的层次遍历就是1234567

那就很明确了,从第一层开始,从左往右加入队列即可

#include <iostream>
#include <queue>using namespace std;struct TreeNode{int val;TreeNode* left;TreeNode* right;TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};// 初始化
void init(TreeNode* root){root -> left = new TreeNode(2);root -> right = new TreeNode(3);root -> left -> left = new TreeNode(4);root -> left -> right = new TreeNode(5);root -> right -> left = new TreeNode(6);root -> right -> right = new TreeNode(7);
}void bfs(TreeNode* root){queue<TreeNode*> q;q.push(root);while(!q.empty()){TreeNode* node = q.front();q.pop();cout << node -> val << " ";if(node -> left != nullptr) q.push(node -> left);if(node -> right != nullptr) q.push(node -> right);}
}int main()
{// 初始化根节点是1TreeNode* root = new TreeNode(1); init(root);bfs(root);return 0;
}

加油

http://www.shuangfujiaoyu.com/news/24182.html

相关文章:

  • 做网站的合同seo对各类网站的作用
  • 南京建站在线咨询做百度推广的网络公司广州
  • 深圳布吉做网站电商网课
  • 在哪里能找到做网站的人安徽网络seo
  • 医院内网网站建设做竞价推广这个工作怎么样
  • 温州人才网站开发温州网站建设开发
  • 电影资源网站开发湖南平台网站建设设计
  • 开网店流程图文详解站内优化包括哪些
  • 西安高端网站建设首选企业推广策划
  • 怎么做子网站seo短视频入口引流
  • 网上下载的html模板怎么修改seo点击排名软件营销工具
  • 国外做家谱的网站培训网站有哪些
  • 赚钱网站如何做网站关键词推广优化
  • 做网站定制搜索排名提升
  • 佛山网站建设报价今天大事件新闻
  • 做网站外包好做吗市场营销师报名官网
  • 成都新津网站建设百度推广关键词查询
  • 驻马店做网站多少钱百度推广客户端官方下载
  • 政府网站建设团队武汉seo托管公司
  • 浙江华企 做网站怎么样成都网站关键词推广优化
  • 企业网站优化广场舞父母不求咋报答游戏推广员拉人技巧
  • 一个app的成本南昌seo外包公司
  • 威海做网站的公司哪家好浙江企业seo推广
  • wordpress新用户权限高级seo招聘
  • 网站怎么显示建设中建网站有哪些步骤
  • 平面设计 网站推荐怎么自己做网页
  • 医院网站建设预算表怎么在百度打广告
  • 为什么要建设学校网站怎么做产品推广平台
  • 传媒类网站模板google搜索引擎下载
  • 织梦网网站建设视频下载steam交易链接在哪里