数据结构
文章平均质量分 57
Xeon_CC
/
展开
-
python的list列表里面嵌套字典,按照字典的条件查询list的元素
先看看怎么过滤字典list1 = [{"id": 34, "timestamp": 16594}, {"id": 532, "timestamp": 19546}, {"id": 342, "timestamp": 95412}, {"id": 653, "timestamp": 84894}]# 其中{k: v for k, v in x.items() if (k == "timestamp" and v >= 84894)}就是字典筛选原创 2021-10-15 10:09:34 · 3795 阅读 · 0 评论 -
二三查找树的定义、查找、插入以及性质
二三查找树的来源 二三查找树弥补了二叉查找树的缺点。二叉查找树满足"左子节点小于父节点,右子节点小于父节点",如果我们以9,8,7,6,5,4,3,2,1 的顺序插入一个二叉排序数,那么就会得到一个最坏的情况。如果我要查找 1 呢?岂不是很费时间??我们有没有办法去平衡这个二叉树?为了平衡这个二叉树,就诞生了二三查找树 二三查找树的定义 (1)如图所示,绿色的节点叫"2-节点",红色的叫"3-节点"(2)2-节点只能有2个子节点,3-节点只能有3个子节点(3)2...原创 2020-11-07 21:20:54 · 515 阅读 · 0 评论 -
堆的插入、删除、查看
堆,通常用数组来实现。用一个数组就可以表示一颗有有序的二叉树。从大到小我们用A-Z来表示,越往后的字母表示越大堆的定义:只要满足父节点大于子节点即可,左子节点和右子节点没有明确的顺序堆的示意图:如果一个节点的位置为k(即索引值为k),则它的父节点的位置为[k/2],而它的两个子节点的位置则分别为2k和2k+1。这样,在不使用指针的情况下,我们也可以通过计算数组的索引在数中上下移动:从a[k]向上一层,就令k等于k/2,向下一层就令k等于2k或者2k+1,其中2k表示左子节点,2k+.原创 2020-09-22 17:51:13 · 617 阅读 · 0 评论 -
树的层序遍历的方法(广度优先遍历)
在https://blog.csdn.net/Xeon_CC/article/details/108698941中,有个Queue类,需要加上此类在博客https://blog.csdn.net/Xeon_CC/article/details/108642782中的BinaryTree类的基础上,添加下面一个层序遍历的方法//层序遍历 //获取整个树中的所有键 public Queue<Key> layerErgodic(){ //定义两个队列,分别存储树中的键和树中的节点原创 2020-09-20 22:05:26 · 485 阅读 · 0 评论 -
树的前序、中序、后序遍历的方法
在博客https://blog.csdn.net/Xeon_CC/article/details/108642782中的BinaryTree类的基础上,加上下面几个关键的遍历方法//获取整个树中所有的键 public Queue<Key> preErgodic(){ Queue<Key> keys = new Queue<Key>(); preErgodic(root, keys); return keys; } //获取指定树x中的所.原创 2020-09-20 21:31:56 · 186 阅读 · 0 评论