摘要:
2023-11-08:用go语言,字符串哈希原理和实现 比如p = 233, 也就是课上说的选择的质数进制 " 3 1 2 5 6 ..." 0 1 2 3 4 hash[0] = 3 * p的0次方 hash[1] = 3 * p的1次方 + 1 * p的0次方 hash[2] = 3 * p的2 阅读全文
摘要:
二、用go语言,对于一个用链接法解决冲突的散列表,说明将关键字 5,28,19,15,20,33,12,17,10 插入到该表中的过程。设该表中有 9 个槽位,并设其散列函数为 h(k)=k mod 9。 文心一言: 在这个问题中,我们使用 Go 语言来解决一个散列(Hash)表的问题,该问题需要我 阅读全文
摘要:
四、用go语言,我们希望在一个非常大的数组上,通过利用直接寻址的方式来实现一个字典。开始时该数组中可能包含一些无用信息,但要对整个数组进行初始化是不太实际的,因为该数组的规模太大。请给出在大数组上实现直接寻址字典的方案。每个存储对象占用 O(1)空间;SEARCH、INSERT和DELETE操作的时 阅读全文
摘要:
三、用go语言,试说明如何实现一个直接寻址表,表中各元素的关键字不必都不相同,且各元素可以有卫星数据。所有三种字典操作(INSERT、DELETE和SEARCH)的运行时间应为O(1)(不要忘记 DELETE 要处理的是被删除对象的指针变量,而不是关键字。) 文心一言,代码正常运行: 在 Go 语言 阅读全文
摘要:
2023-11-04:用go语言,如果n = 1,打印 1*** 如果n = 2,打印 1*** 3*** 2*** 如果n = 3,打印 1*** 3*** 2*** 4*** 5*** 6*** 如果n = 4,打印 1*** 3*** 2*** 4*** 5*** 6*** 10** 9*** 阅读全文
摘要:
二、用go语言,位向量(bit vector)是一个仅包含0和1的数组。长度为m的位向量所占空间要比包含m个指针的数组少得多。请说明如何用一个位向量来表示一个包含不同元素(无卫星数据)的动态集合。字典操作的运行时间应为 O(1)。 文心一言,代码正常运行: 在Go语言中,我们可以使用map[int] 阅读全文
摘要:
一、用go语言,假设一动态集合 S用一个长度为 m 的直接寻址表T来表示。请给出一个查找 S 中最大元素的过程。你所给的过程在最坏情况下的运行时间是多少? 文心一言,代码正常运行: 在这个问题中,我们需要实现一个查找动态集合 S 中最大元素的算法,该动态集合使用一个长度为 m 的直接寻址表 T 来表 阅读全文
2023-11-01:用go语言,沿街有一排连续的房屋。每间房屋内都藏有一定的现金, 现在有一位小偷计划从这些房屋中窃取现金, 由于相邻的房屋装有相互连通的防盗系统,所以小偷 不会窃取相邻的房屋, 小
摘要:
2023-11-01:用go语言,沿街有一排连续的房屋。每间房屋内都藏有一定的现金, 现在有一位小偷计划从这些房屋中窃取现金, 由于相邻的房屋装有相互连通的防盗系统,所以小偷 不会窃取相邻的房屋, 小偷的 窃取能力 定义为他在窃取过程中能从单间房屋中窃取的 最大金额, 给你一个整数数组 nums 表 阅读全文
摘要:
六、用go语言,任意有根树的左孩子右兄弟表示法中每个结点用到三个指针: leftchild、rightsibling 和parent。对于任何结点,都可以在常数时间到达其父结点,并在与其孩子数呈线性关系的时间内到达所有孩子结点。说明如何在每个结点中只使用两个指针和一个布尔值的情况下,使结点的父结点或 阅读全文
摘要:
五、用go语言,给定一个n结点的二叉树,写出一个 O(n)时间的非递归过程,将该树每个结点的关键字输出。要求除该树本身的存储空间外只能使用固定量的额外存储空间,且在过程中不得修改该树,即使是暂时的修改也不允许。 文心一言: 您可以使用一个栈来存储节点,以便在遍历二叉树时进行回溯。由于您要求不能修改树 阅读全文