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

柳州学校网站建设网站在vps能访问 在本地访问不了

柳州学校网站建设,网站在vps能访问 在本地访问不了,华为企业邮箱,wordpress封装小程序目录 前言一、树的基本概念二、二叉树三、树的表示方法四、树的遍历树的代码模版五、经典例题[2236. 判断根结点是否等于子结点之和](https://leetcode.cn/problems/root-equals-sum-of-children/description/)代码题解 六、总结结语 前言 从这一期开始数据结构开始有那么一点… 目录 前言一、树的基本概念二、二叉树三、树的表示方法四、树的遍历树的代码模版五、经典例题[2236. 判断根结点是否等于子结点之和](https://leetcode.cn/problems/root-equals-sum-of-children/description/)代码题解 六、总结结语 前言 从这一期开始数据结构开始有那么一点复杂了这期我们一起来学习初级数据结构——树树是数据结构中的一个重要概念它用于表示具有层次关系的数据集合。 一、树的基本概念 定义树是一种非线性的数据结构由nn0个有限节点组成一个具有层次关系的集合。它看起来像一棵倒挂的树根朝上叶朝下。 特殊节点 根节点树中唯一的特殊节点没有前驱节点。 子节点根节点外的其余节点被分成MM0个互不相交的集合每个集合又是一棵子树。 叶子节点度为0的节点即没有子节点的节点。 分支节点度不为0的节点即含有子节点的节点。 节点关系 双亲节点父节点若一个节点含有子节点则这个节点称为其子节点的父节点。 孩子节点子节点一个节点含有的子树的根节点称为该节点的子节点。 兄弟节点具有相同父节点的节点互称为兄弟节点。 堂兄弟节点双亲在同一层的节点互为堂兄弟。 祖先节点从根到该节点所经分支上的所有节点。 子孙节点以某节点为根的子树中任一节点都称为该节点的子孙。 树的度树中节点的最大度即节点的最大子树数。 树的层次从根开始定义起根为第1层根的子节点为第2层以此类推。 树的高度深度树中节点的最大层次。 二、二叉树 定义二叉树是节点的一个有限集合该集合为空或由一个根节点加上两棵别称为左子树和右子树的二叉树组成。二叉树的子树有左右之分次序不能颠倒。 特殊二叉树 满二叉树每一层上的节点数都是最大节点数即每一层i的节点数都是2^i。 完全二叉树叶子节点只能在层次最大的两层上出现且对任一节点若其右分支的子孙的最大层次为l则其左分支的子孙的最大层次必是l或l1。完全二叉树可以由满二叉树引伸出来是效率很高的数据结构。 二叉树的性质 在二叉树的第i层上至多有2^(i-1)个节点i1。 深度为k的二叉树至多有2^k-1个节点k1。 对于任何一颗二叉树其叶子节点数为n0度为2的节点数为n2则n0n21。 具有n个节点的完全二叉树的深度为log2n1向下取整n0。 二叉树的存储结构 顺序存储结构使用数组来存储一般适合表示完全二叉树。对于非完全二叉树可能会造成空间浪费。 链式存储结构用链表来表示二叉树链表中的每个节点由数据域和左右指针域组成左右指针分别用来给出该节点左孩子和右孩子所在的链节点的存储地址。链式结构又分为二叉链和三叉链。 三、树的表示方法 树有多种表示方法包括树形表示法、孩子兄弟表示法、文氏图表示法、凹形表示法、括号表示法等。其中树形表示法是最常用的方法每个节点指向若干孩子节点以此类推。 四、树的遍历 树的遍历是指按照某种规则访问树中的每个节点使得每个节点被访问且仅被访问一次。常见的遍历方法包括先根遍历、后根遍历和中序遍历针对二叉树。 先根遍历先遍历根节点再遍历它的子节点。 后根遍历先遍历子节点再遍历根节点。 中序遍历针对二叉树先访问左子树再访问根再访问右子树。 树的代码模版 #includeiostream using namespace std;templatetypename T struct ListNode {T data;ListNode* next;ListNode(T x):data(x),next(NULL){} };templatetypename T struct TreeNode {T data;ListNodeTreeNodeT** childrenHead;//子节点指针TreeNode() {childrenHead NULL;}void Addchild(TreeNodeT* node) {//增加子节点的接口ListNodeTreeNodeT** childNode new ListNodeTreeNodeT*(node);if (childrenHead NULL) childrenHead childNode;else {childNode-next childrenHead;childrenHead childNode;}} };templatetypename T class Tree { private:TreeNodeT* root;TreeNodeT* nodes; public:Tree();Tree(int maxNode);~Tree();TreeNodeT* getTreeNode(int id);void setRoot(int rootId);void AddChild(int sonId, int parentId);void AssignData(int nodeId, T data);void Print(TreeNodeT* node NULL); };templatetypename T TreeT::Tree() {nodes new TreeNodeT[100001]; }templatetypename T TreeT::Tree(int maxNodes) {nodes new TreeNodeT[maxNodes]; }templatetypename T TreeT::~Tree() {delete[]nodes; }templatetypename T TreeNodeT* TreeT::getTreeNode(int id) {return nodes[id]; }templatetypename T void TreeT::setRoot(int rootId) {root getTreeNode(rootId); }templatetypename T void TreeT::AddChild(int parentId, int sonId) {TreeNodeT* parentNode getTreeNode(parentId);TreeNodeT* sonNode getTreeNode(sonId);parentNode-Addchild(sonNode); }templatetypename T void TreeT::AssignData(int nodeId, T data) {getTreeNode(nodeId)-data data; }templatetypename T void TreeT::Print(TreeNodeT* node) {if (node NULL)node root;cout node-data;ListNodeTreeNodeT** temp node-childrenHead;while (temp) {Print(temp-data);temp temp-next;} } int main() {Treechart(9);t.setRoot(0);t.AssignData(0, a);t.AssignData(1, b);t.AssignData(2, c);t.AssignData(3, d);t.AssignData(4, e);t.AssignData(5, f);t.AssignData(6, g);t.AssignData(7, h);t.AssignData(8, i);t.AddChild(0, 2);t.AddChild(0, 1);t.AddChild(1, 3);t.AddChild(2, 5);t.AddChild(2, 4);t.AddChild(3, 8);t.AddChild(3, 7);t.AddChild(3, 6);t.Print();return 0; }五、经典例题 2236. 判断根结点是否等于子结点之和 蓝色字体可以点进去看原题 代码题解 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/ class Solution { public:bool checkTree(TreeNode* root) {return root-valroot-left-valroot-right-val;} };六、总结 综上所述树是一种重要的数据结构它用于表示具有层次关系的数据集合。在树的基础上还可以构建出更复杂的树形结构如二叉树、B树、B树等以满足不同的应用需求。 结语 下期我们将一起学习初级数据结构——二叉树我们这期不见不散 想看更多内容可以关注我看我作品关注我让我们一起学习编程希望大家能点赞关注支持一下让我有持续更新的动力谢谢大家
http://www.pierceye.com/news/40717/

相关文章:

  • 公司自建网站备案免费制作贺卡的app
  • 网站建设犀牛网络营销外包公司收费
  • 怎样建立一个自己的网站免费网站建设公司品牌
  • 做网站ps笔记本电脑合作网站建设
  • 网站建设违法行为网站建设教程流程
  • 网站怎样优化关键词好设计方案英文
  • wordpress微信收款站长工具seo推广
  • 怎么进电力建设公司网站wordpress管理后台添加导航栏
  • 植物园门户网站建设方案网站点击赚钱怎么做
  • 黄金网站大全免费2023济南微信网站开发
  • 网站规划与网页设计案例ui设计师零基础学什么
  • 安徽建设厅网站怎么打不开新浪云建设自己的网站
  • 做第一个网站什么类型网页代码怎么打开
  • 北京企业网站排名优化小程序权限超时
  • 宁夏建设工程造价网站河南seo推广平台
  • 论坛备案网站名称自助定制网站开发公司
  • 金牛区网站建设做网站公司赚不赚钱
  • 文化厅网站建设审核报告单安陆市城乡建设局网站
  • 专业做装修设计的网站为什么一个人做网站有难度
  • 技术支持 东莞网站建设机械加工如何利用网络平台挣钱
  • 杭州建设网站免费深圳做网站有哪些
  • 个人网站制作方法重庆喷绘制作
  • 无锡做网站、潍坊外贸网站建设
  • 徐州市丰县建设局网站轻设计 让网站灵敏轻便的6个技巧
  • 网站名称是什么阿里巴巴网站开发信在哪
  • it网站开发网站建设会考什么
  • 酒店用品网站源码华佣网做最好的现货沥青返佣网站
  • 电子商务网站建设薛万欣住房和城乡建设部网站安全月
  • 网站台做计么呢微信触屏版网站开发
  • 那些网站是做生鲜的上海免费模板建站