Tag: 二叉树

使用Swift在BST中进行级别订单遍历

开始之前,让我们先回顾一下… 在Swift中使用数据结构 因此,基本上我们已经学习了数据结构并在C / C ++中实现。 在这个故事中,您将看到学习一些基本数据的方法。 Swift中的二叉搜索树 从以前的帖子开始:https: //medium.com/@abhishekthaplithapliyal/playing-with-data-structure-in-swift-ccd8efca9611 medium.com 从最近的两个故事中,我们可以获得一些信息。 关于堆栈和树木。 让我们将它们放到一个新的水平,并结束本系列的其他内容。 此处节点1的级别为1,节点2和3的级别为2,节点4,5,6和7的级别为3。 现在,在进行级别顺序遍历的情况下,从根节点开始,从左到右逐一遍历每个级别。 如下所示 所以最终的内联输出就像 20、9、49、5、12、23、52、15、50 就像我们从左到右逐行编写。 那么,遍历为何排队的背后的策略是什么? 在这种情况下,队列是遍历的最简单方法。 与在队列中一样,操作以FIFO方式进行,即首先进行优先操作,并且在进行层顺序遍历时,我们需要首先访问根节点及其子节点,依此类推。 队列 让我们简要介绍一下队列。 队列具有类似数组的结构,其中元素是从后面添加的,因此操作称为Enqueue ,元素是从前面删除的,称为Dequeue 。 这就像售票柜台中的一条线,在该行的最后一行添加了新人,而票证则被卖给该行的第一人。 太好了! BST就在我这边。 希望你喜欢。 直到那时 快乐—编码😄😄!!!

Swift中的二叉搜索树

从以前的帖子: 在Swift中使用数据结构 因此,基本上我们已经学习了数据结构并在C / C ++中实现。 在这个故事中,您将看到学习一些基本数据的方法。 因此,我也前进到也要在二进制搜索树上进行写操作。 二进制搜索树是满足以下属性的树: 1.左子树中所有节点的值均小于根节点中的值。 2.右子树中所有节点的值都大于根节点中的值。 3.根节点的左和右子树也是BST。 要从这些遍历手动构建树,请遵循以下https://crackinterviewtoday.wordpress.com/2010/03/15/rebuild-a-binary-tree-from-inorder-and-preorder-traversals/ 正在搜寻 搜索机制类似于上面提到的具有相同2条规则的插入机制。 仅当节点数据与输入元素匹配时,它才会成功返回, 否则将返回无效消息,如下所示。 func search(element:T){…} :可供用户搜索元素。 private func search(_ rootNode:TreeNode ?, _ element:T){…} :这是将搜索元素的递归函数。 因此,如果element> rootNode.data ,它将递归调用根的右子树节点, 否则调用左子树节点。 由于树中存在E节点,因此返回成功结果NODE FOUND:E 。 由于没有节点包含等于N的数据,因此返回INVALID NODE:N 。 因此,这是泛型树的概述。 希望您对泛型有更多的了解。 在下一个故事中,我们将讨论最后一种遍历类型:Level Order Traversing😄……敬请期待😜!!! 使用Swift在BST中进行级别订单遍历 让我们先回顾一下, 然后再开始… medium.com 快乐编码😃!