摘要:
五、用go语言,假设为每个结点换一种设计,属性 x.p 指向 x 的双亲,属性 x.succ 指向 x 的后继。试给出使用这种表示法的二叉搜索树 T 上 SEARCH、INSERT 和DELETE 操作的伪代码。这些伪代码应在 O(h) 时间内执行完,其中 h 为树 T 的高度。(提示:应该设计一个 阅读全文
摘要:
2023-12-16:用go语言,给定整数数组arr,求删除任一元素后, 新数组中长度为k的子数组累加和的最大值。 来自字节。 答案2023-12-16: 来自左程云。 灵捷3.5 大体步骤如下: 算法 maxSum1 分析: 1.计算输入数组 arr 的长度 n。 2.如果 n <= k,则返回 阅读全文
摘要:
四、用go语言,删除操作可交换吗?可交换的含义是,先删除 x 再删除 y 留下的结果树与先除 y 再删除 x 留下的结果树完全一样。如果是,说明为什么? 否则,给出一个反例。 文心一言: 在Go语言中,删除操作是不可交换的。这意味着先删除节点 x 再删除节点 y 与先删除节点 y 再删除节点 x 留 阅读全文
摘要:
三、用go语言,对于给定的 n 个数的集合,可以通过先构造包含这些数据的一棵二叉搜索树(反复使用TREE-INSERT 逐个插入这些数),然后按中序遍历输出这些数的方法,来对它们排序。这个排序算法的最坏情况运行时间和最好情况运行时间各是多少? 文心一言: 在Go语言中,使用二叉搜索树(BST)进行排 阅读全文
2023-12-13:用go语言,密码是一串长度为n的小写字母,一则关于密码的线索纸条, 首先将字母a到z编号为0到25编号, 纸条上共有n个整数ai,其中a1表示密码里第一个字母的编号, 若i>1的
摘要:
2023-12-13:用go语言,密码是一串长度为n的小写字母,一则关于密码的线索纸条, 首先将字母a到z编号为0到25编号, 纸条上共有n个整数ai,其中a1表示密码里第一个字母的编号, 若i>1的话就表示第i个字母和第i-1个字母编号的差值, 例如,a2就代表密码中第1个字母和第2个字母编号的差 阅读全文
摘要:
二、用go语言,假设通过反复向一棵树中插人互不相同的关键字来构造一棵二叉搜索树。证明:在这棵树中查找关键字所检查过的结点数目等于先前插入这个关键字所检查的结点数目加 1。 文心一言: 为了证明这个结论,我们可以使用二叉搜索树的性质:在二叉搜索树中,每个节点包含一个关键字以及指向其左右子节点的指针。左 阅读全文
摘要:
一、用go语言,给出 TREE-INSERT 过程的一个递归版本。 文心一言,代码不能运行: 下面是用 Go 语言实现一个递归版本的 TREE-INSERT 过程的代码: package main import "fmt" type TreeNode struct { Val int Left *T 阅读全文
摘要:
九、用go语言,设 T 是一棵二叉搜索树,其关键字互不相同;设 x 是一个叶结点,y 为其父结点。证明: y.key 或者是 T 树中大于 x.key 的最小关键字,或者是 T 树中小于 x.key 的最大关键字。 文心一言: 要证明这个性质,我们可以采用二叉搜索树的性质:对于任何节点N,其左子树中 阅读全文
摘要:
2023-12-09:用go语言,给你两个整数数组 arr1 和 arr2, 返回使 arr1 严格递增所需要的最小「操作」数(可能为 0)。 每一步「操作」中,你可以分别从 arr1 和 arr2 中各选出一个索引, 分别为 i 和 j,0 <= i < arr1.length 和 0 <= j 阅读全文
摘要:
八、用go语言,证明:在一棵高度为 h 的二叉搜索树中,不论从哪个结点开始,k 次连续的 TREE-SUCCESSOR 调用所需时间为 O(k+h)。 文心一言: 要证明在一棵高度为 h 的二叉搜索树中,不论从哪个结点开始,k 次连续的 TREE-SUCCESSOR 调用所需时间为 O(k+h),我 阅读全文