摘要: 堆介绍 堆(Heap)是树结构的一种,它是一颗完全二叉树,一个最小堆或最大堆总会满足下列条件: 堆中某个节点的值总是不大于或不小于其父节点的值 堆总是一棵完全二叉树 一个最大堆如下: 最大值在根节点,任意节点值总是大于该子树的最大值,而最小堆则相反 说了这么多关于堆定义的东西,我们发现堆本质还是上一 阅读全文
posted @ 2020-02-22 13:32 秋叶红了 阅读(966) 评论(0) 推荐(0) 编辑
摘要: 上次写的栈和队列还是一个多月前,鸽了这么久终于自觉要回来把数据结构写下去。。 一、二叉搜索树简简介 前几篇文章介绍了主要的几种线性结构,本篇开始进入树(tree)结构。 树结构是由n(n>0)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝 阅读全文
posted @ 2020-01-07 18:19 秋叶红了 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 1. 简介 队列是一种特殊的线性表,它只允许在表的前端(front)进行删除(出队)操作,而在表的后端(rear)进行插入(入队)操作。 栈又名堆栈,它和队列一样也是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。与先进先出队列相比,栈的运作 阅读全文
posted @ 2019-11-11 17:33 秋叶红了 阅读(426) 评论(0) 推荐(0) 编辑
摘要: 1.什么是链表 链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 2.节点 节点维护变量data和next,分别用于存储数据和指向下一个节点。 C#: class Node<T> { private T data; private Node<T> 阅读全文
posted @ 2019-11-11 00:25 秋叶红了 阅读(5670) 评论(0) 推荐(0) 编辑
摘要: 最近看Tornado源码给了我不少启发,心血来潮决定自己试着只用python标准库来实现一个异步非阻塞web框架。花了点时间感觉还可以,一百多行的代码已经可以撑起一个极简框架了。 一、准备工作 需要的相关知识点: HTTP协议的请求和响应 IO多路复用 asyncio 掌握上面三个点的知识就完全没有 阅读全文
posted @ 2019-11-01 15:59 秋叶红了 阅读(620) 评论(0) 推荐(0) 编辑
摘要: 数组是程序中最常见的数据结构,它可以存储一个固定大小的相同类型元素的顺序集合(强类型语言)。数组的元素都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素,通过索引可以非常容易找到某一个元素。 大多数时候我们需要使用一个大小可变的数组(C#、Python中的list),本文 阅读全文
posted @ 2019-10-27 11:30 秋叶红了 阅读(340) 评论(0) 推荐(0) 编辑
摘要: MongoDB作为一种重要的非关系型数据库,它以字典(JSON)的形式存储数据,本文主要梳理pymongo库的增删改查方法作简单概括。 阅读全文
posted @ 2019-10-01 12:16 秋叶红了 阅读(1734) 评论(0) 推荐(0) 编辑
摘要: 模拟博客园提交文章HTTP请求,实现自动发布新文章。 阅读全文
posted @ 2019-09-12 15:51 秋叶红了 阅读(1183) 评论(0) 推荐(3) 编辑
摘要: Python中生成器可以理解一种自动实现迭代器协议的数据类型 阅读全文
posted @ 2019-09-08 17:55 秋叶红了 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 迭代器指对象提供了一个next方法,执行该方法要么放回迭代中的下一项,要么就引起一个Stopitertion错误,以终止迭代。 阅读全文
posted @ 2019-09-08 17:54 秋叶红了 阅读(257) 评论(0) 推荐(0) 编辑