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

苏州建设监督网站首页呼和浩特网站建设价位

苏州建设监督网站首页,呼和浩特网站建设价位,用eclipse做jsp网站,个人博客模板网站什么是树数据结构#xff1f; 树数据结构是一种层次结构#xff0c;用于以易于导航和搜索的方式表示和组织数据。它是由边连接的节点集合#xff0c;节点之间具有层次关系。树的最顶端的节点称为根#xff0c;它下面的节点称为子节点。每个节点可以有多个子节点#xff0c…什么是树数据结构 树数据结构是一种层次结构用于以易于导航和搜索的方式表示和组织数据。它是由边连接的节点集合节点之间具有层次关系。树的最顶端的节点称为根它下面的节点称为子节点。每个节点可以有多个子节点这些子节点也可以有自己的子节点形成递归结构。 这种数据结构是在计算机中组织和存储数据以便更有效地使用的专门方法。它由中心节点、结构节点和子节点组成它们通过边连接。我们也可以说树数据结构具有相互连接的根、枝和叶。  树入门——数据结构与算法教程 递归定义  一棵树由一个根和零个或多个子树 T 1 , T 2 , … , T k组成这样从树的根到每个子树的根都有一条边。 为什么 Tree 被认为是非线性数据结构 树中的数据不是按顺序存储的即它们不是线性存储的。相反它们被安排在多个层次上或者我们可以说它是一个层次结构。因此树被认为是一种非线性数据结构。 树数据结构中的基本术语 父节点节点的前身节点称为该节点的父节点。{B}是{D, E}的父节点。子节点节点的直接后继节点称为该节点的子节点。例子{D, E}是{B}的子节点。根节点树的最顶端节点或没有任何父节点的节点称为根节点。{A }是树的根节点。一棵非空树必须恰好包含一个根节点和从根到树的所有其他节点的恰好一条路径。叶节点或外部节点没有任何子节点的节点称为叶节点。{K, L, M, N, O, P}是树的叶节点。节点的祖先根节点到该节点的路径上的任何前任节点称为该节点的祖先。{A,B}是节点{E}的祖先节点后代从叶节点到该节点的路径上的任何后继节点。{E,I}是节点 {B} 的后代。兄弟节点同一个父节点的子节点称为兄弟节点。{D,E}称为兄弟姐妹。节点级别从根节点到该节点的路径上的边数。根节点的级别为0。内部节点至少有一个子节点的节点称为内部节点。节点的邻居该节点的父节点或子节点称为该节点的邻居。子树树的任何节点及其后代。 树的属性 边数边可以定义为两个节点之间的连接。如果一棵树有 N 个节点那么它将有 (N-1) 条边。从每个节点到树的任何其他节点只有一条路径。节点深度节点深度定义为从根节点到该节点的路径长度。每条边为路径增加 1 个长度单位。因此它也可以定义为从树的根到节点的路径中的边数。节点的高度节点的高度可以定义为从该节点到树的叶节点的最长路径的长度。树的高度树的高度是从树的根到树的叶节点的最长路径的长度。节点的度连接到该节点的子树的总数称为该节点的度。叶节点的度数必须为0。树的度是树中所有节点中节点的最大度。 还有一些属性是 在树中遍历是通过深度优先搜索和广度优先搜索算法完成的。它没有回路也没有电路它没有自循环 它的层次模型。 句法 struct Node {    int data;    struct Node *left_child;    struct Node *right_child; }; 树的基本操作 创建——在数据结构中创建一棵树。 Insert - 在树中插入数据。 Search - 在树中搜索特定数据以检查它是否存在。 Preorder Traversal – 在数据结构中以预序方式执行树的遍历。 In order Traversal——按顺序遍历树。 后序遍历——以后序方式执行树的遍历。 树数据结构示例 这里 节点1是根节点 1 是 2 和 3 的父级 2和3是兄弟姐妹 4、5、6、7为叶节点 1和2是5的祖先 // C program to demonstrate some of the above // terminologies #include bits/stdc.h using namespace std; // Function to add an edge between vertices x and y void addEdge(int x, int y, vectorvectorint adj) {adj[x].push_back(y);adj[y].push_back(x); } // Function to print the parent of each node void printParents(int node, vectorvectorint adj,int parent) {// current node is Root, thus, has no parentif (parent 0)cout node -Root endl;elsecout node - parent endl;// Using DFSfor (auto cur : adj[node])if (cur ! parent)printParents(cur, adj, node); } // Function to print the children of each node void printChildren(int Root, vectorvectorint adj) {// Queue for the BFSqueueint q;// pushing the rootq.push(Root);// visit array to keep track of nodes that have been// visitedint vis[adj.size()] { 0 };// BFSwhile (!q.empty()) {int node q.front();q.pop();vis[node] 1;cout node - ;for (auto cur : adj[node])if (vis[cur] 0) {cout cur ;q.push(cur);}cout endl;} } // Function to print the leaf nodes void printLeafNodes(int Root, vectorvectorint adj) {// Leaf nodes have only one edge and are not the rootfor (int i 1; i adj.size(); i)if (adj[i].size() 1 i ! Root)cout i ;cout endl; } // Function to print the degrees of each node void printDegrees(int Root, vectorvectorint adj) {for (int i 1; i adj.size(); i) {cout i : ;// Root has no parent, thus, its degree is equal to// the edges it is connected toif (i Root)cout adj[i].size() endl;elsecout adj[i].size() - 1 endl;} } // Driver code int main() {// Number of nodesint N 7, Root 1;// Adjacency list to store the treevectorvectorint adj(N 1, vectorint());// Creating the treeaddEdge(1, 2, adj);addEdge(1, 3, adj);addEdge(1, 4, adj);addEdge(2, 5, adj);addEdge(2, 6, adj);addEdge(4, 7, adj);// Printing the parents of each nodecout The parents of each node are: endl;printParents(Root, adj, 0);// Printing the children of each nodecout The children of each node are: endl;printChildren(Root, adj);// Printing the leaf nodes in the treecout The leaf nodes of the tree are: endl;printLeafNodes(Root, adj);// Printing the degrees of each nodecout The degrees of each node are: endl;printDegrees(Root, adj);return 0; }The parents of each node are: 1-Root 2-1 5-2 6-2 3-1 4-1 7-4 The children of each node are: 1- 2 3 4 2- 5 6 3- 4- 7 5- 6- 7- The leaf nodes of the tree are: 3 5 6 7 The degrees of each node are: 1: 3 2: 2 3: 0 4: 1 5: 0 6: 0 7: 0 树数据结构的类型 不同类型的树数据结构如下 1.一般树 一般的树数据结构对节点数没有限制。这意味着父节点可以有任意数量的子节点。   2.二叉树   二叉树的一个节点最多可以有两个子节点。在给定的树图中节点 B、D 和 F 是左孩子而 E、C 和 G 是右孩子。   3.平衡树 如果左子树和右子树的高度相等或最多相差1则该树称为平衡树。   4.二叉搜索树 顾名思义二叉搜索树用于各种搜索和排序算法。示例包括 AVL 树和红黑树。它是一种非线性数据结构。它表明左节点的值小于其父节点而右节点的值大于其父节点。 树数据结构的应用 树型数据结构的应用如下 1. 生成树它是路由器中用于将数据包定向到目的地的最短路径树。   2. 二叉搜索树它是一种树状数据结构有助于维护已排序的数据流。   满二叉树完全二叉树偏二叉树严格二叉树扩展二叉树 3.分层存储数据树型数据结构用于存储分层数据即数据以顺序的形式排列。   4. 语法树语法树表示程序源代码的结构在编译器中使用。   5. Trie它是一种快速有效的动态拼写检查方法。它还用于从集合中定位特定键。   6、堆也是一种树型数据结构可以用数组的形式来表示。它用于实现优先级队列。 7. 人工智能决策树和其他基于树的模型常用于机器学习和人工智能中以进行预测和数据分类。  8. 数据库一些数据库使用树来组织数据以进行高效的搜索和排序。 9. 网络网络的路由算法例如 Internet 协议 (IP) 路由使用树来找到数据从一个网络传输到另一个网络的最佳路径。 树数据结构的优点 高效的插入、删除和搜索操作。树在可以存储的数据类型方面具有灵活性。它用于表示层次关系。它具有表示递归结构的能力。用于各种算法和数据结构如霍夫曼编码和决策树。与其他数据结构如列表和链表相比树使用的空间更少。树木本质上是动态的。树数据结构可以在添加或删除新数据时自动自组织这可以提高性能并降低复杂性。
http://www.hkea.cn/news/14294963/

相关文章:

  • 只能家居网站建设目的网络维护专业
  • 贵阳网站建设gzzctyi医院做网站备案需要哪些资料
  • 门户网站建设费用搜索引擎优化简称
  • 网站建设与管理清考作业购物网站服务器带宽
  • 青色系网站怎么在网站视频做字幕
  • 做网站没有签合同可以退款吗出入成都最新通知今天
  • 做网站的基本功通州做网站公司
  • 网站开发站点的文件夹网站建设进度汇报
  • 深圳网站开发哪家服务专业张家港网页设计培训
  • 协会网站建设目的郑州百度公司地址
  • 免备案手机网站用网站还是阿里巴巴做soho
  • 深圳做网站联系电话安卓app快速开发工具
  • 代做动画毕业设计的网站wordpress 判断加密
  • wordpress交易网站短视频分销平台
  • 建站网址导航商标设计创意
  • 天津平台网站建设设计网站首页横版图怎么做
  • 大兴网站定制开发金华住房与城乡建设部网站
  • 信阳 网站建设wordpress关闭搜索功能
  • 徐州网站建设案例教育类网站首页设计模板
  • 大型网站稳定性建设视频课程推荐小蚁人网站建设
  • 昆明做网站vr泉州洛江住房和城乡建设局网站
  • 汽车网站建设预算网站制作 广州
  • 中小型网站建设新闻福州自适应网站建设
  • 秦淮html5响应式网站wordpress按分类设置seo
  • 网站建设牜金手指花总十五云南省住房和城乡建设厅网站
  • 三视觉设计网站h5制作工具有哪四个
  • 大学生网站建设方案最好的购物网站
  • 安徽建设厅网站进不去郑州专业的网站公司
  • 北京网站建设推广服务信息什么公司做网商网站的
  • 潍坊网站建设培训班地方门户网站开发方案