数据结构_红黑树和List集合_介绍&常用方法

数据结构_红黑树

二叉树:binary tree,是每个结点不超过2的有序数(tree)

简单的理解,就是一种类似与我们生活中树的结构,只不过每个结点上都最多只能有两个子结点

二叉树是每个节点最多有两个子树的树构造,顶上的叫根结点,两边被称作“左子树”和“右子树”

如图:

  

 

 

排序树/查找树:猜数字小游戏1-100之间的数字,从50开始猜一下减去一半在二叉树的基础上元素是有大小顺序的

左子树小,右子树大

 

 

*衡树:左子树和有孩子相等

 

 

不*衡树:左孩子!=右孩子

 

 

红黑树:特点:趋*与*衡树,查询的速度非常快,查询叶子节点最大次数和最小次数不能超过2倍

约束:

1.节点可以使红色的或黑色的

2.根节点是黑色的

3.叶子节点(空节点)是黑色的

4.每个虹色的节点的子节点都是黑色的

5.任何一个节点到其每一个叶子节点的所有路径上黑色节点致相同

 

 

 

 

List集合_介绍&常用方法

List接口的特点:

  1.有序的集合,存储元素和取出元素的顺序是一致的(存储123 取出123)

  2.有索引,包含一些带索引的方法

  3.允许存储重复的元素

List接口中带索引的方法(特有)

  1.void add(int index,E element):将指定的元素,添加到该集合中的指定位置上

  2.E get(int index):返回集合中指定位置的元素

  3.E remove(int index):移动列表中指定位置的元素,返回的是被移动的元素

  4.E set(int index,E element):用指定元素替换集合中指定,返回值的更新前的元素。

注意:

  操作索引的时候,一定要防止索引越界异常

复制代码
public class demg_010 {
    public static void main(String[] args) {
        //创建ArrayList集合返回一个List接口对象
        List<String> list = new ArrayList<>();//多态
        //往集合中添加数据
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("a");
        //打印集合输出
        System.out.println(list);
        System.out.println("--------------------");
        //在c和d之间添加一个ithima
        list.add(3,"itheima");
        System.out.println(list);
        //移除元素
        String remove = list.remove(4);
        System.out.println("被移除的元素:"+remove);
        //替换指定位置的元素,返回值的更新前的元素
        String k = list.set(2, "k");
        System.out.println("被替换的元素:"+k+" "+list);
        System.out.println("--------------------------");//索引超出就抛出异常
        String s = list.get(5);//错误
        System.out.println(s);

    }
}
复制代码

运行结果:

 

 

 

 

List集合的三种遍历输出格式:

复制代码
        //list集合遍历有3种方式
        //使用普通的for循环
        for (int i = 0; i <list.size() ; i++) {
            System.out.println(list.get(i));
        }
        System.out.println("==============");
        //迭代器遍历
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()){
            String next = iterator.next();
            System.out.println(next);
        }
        System.out.println("=============");
        //增强for循环遍历
        for (String s : list) {
            System.out.println(s);
        }
复制代码

运行结果:

  

 

posted @   monkey大佬  阅读(75)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示