AVL树问题

AVL树问题

我看了老师的代码,里面有K 和 V。因为我是看了二分查找树后直接看的AVL。那么我在构造一颗AVL树的时候,是不是可以不加 <K extends Comparable, V> ,不加public K key; 不加 public V value; 这些内容呢?只构建一颗朴素的平衡二叉树 或者 判断一个二叉树是否平衡,要K和V没什么用吧?

public class AVLTree<K extends Comparable<K>, V> {

    private class Node{
        public K key;
        public V value;
        public Node left, right;
        public int height;

        public Node(K key, V value){
            this.key = key;
            this.value = value;
            left = null;
            right = null;
            height = 1;
        }
    }

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
liuyubobobo 2023-12-28 14:22:04

基于 AVL 可以创建一个 map,也可以创建一个 set。引入 K 和 V 可以创建一个 map,没有 K 和 V 只能创建一个 set。如果你需要的是一个 set,可以不加入 K 和 V。


另外,set 可以基于 map 实现,而 map 不能基于 set 实现。所以从实现一个数据结构库的角度,应该从底层实现一个支持 map 的 AVL,然后复用这个 AVL 实现 set。可以参考这里 https://class.imooc.com/course/1584 第二章的内容。


继续加油!:)


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
算法与数据结构
  • 参与学习       2636    人
  • 解答问题       1105    个

慕课网算法名师Liuyubobobo,5年集大成之作 从0到工作5年,算法与数据结构系统解决方案

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师