红黑树是高效查找和插入删除的数据结构,用途很广泛,如epoll的消息注册机制,stl中的map都采用了红黑树。
红黑树的主要特性:
(1)每个节点或者是黑色,或者是红色。
(2)根节点是黑色。
(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空的叶子节点!]
(4)如果一个节点是红色的,则它的子节点必须是黑色的。
(5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。
定理:一棵含有n个节点的红黑树的高度至多为2log(n+1)。
python 可以通过type
函数创建类,也可通过type判断数据类型
1 | import socket |
type创建类格式为type(‘类名’,(基类1,基类2…), dict(成员函数名=函数名))
第一个参数为类名,第二个参数为一个tuple,如果继承的基类只有一个,要注意tuple写法(基类,),第三个参数为dict构造的类成员函数
除了可以用type创建类之外,可以用metaclass
限制类的行为
python 网络编程
和其他语言都是一样的,服务器这块步骤为:1. 创建套接字
2. 绑定地址
3. 监听该描述符的所有请求
4. 有新的请求到了调用accept处理请求
Python Web服务器网关接口(Python Web Server Gateway Interface,简称“WSGI”
),可以保证同一个服务器响应不同应用框架的请求,WSGI的出现,让开发者可以将网络框架与网络服务器的选择分隔开来,例如,你可以使用Gunicorn或Nginx/uWSGI或Waitress服务器来运行Django、Flask或Pyramid应用。下面简单实现一个机遇WSGI协议的服务器。
python
定制类主要是实现特定功能,通过在类中定义特定的函数完成特定的功能。
1 | class Student(object): |
1 | class Student(object): |
本文讲述如何用hexo
搭建个人博客,并托管到github
。不需要租赁服务器,可完成网站博客的搭建。
安装hexo之前,要先下载安装Node.js和Git,百度搜索找到下载即可。
Git下载地址
Node.js下载地址
在本地建立一个文件夹,我的文件夹为D:github/hexotest。
接下来可以进入这个文件夹右键Git Bash 或者通过命令号cmd进入这个文件夹
输入如下命令:
1 | npm install hexo-cli -g |
python中类声明
如下:
1 | class Student(object): |
用前文提到的基础知识,和网上流行的2048源码,用python实现该游戏。
先将用户操作和游戏逻辑绑定。
WASD分别对应移动方向上、左、下、右
然后实现矩阵的转置和逆置,这样只要实现一个方向的移动,通过转置和逆置就可以得到其他方向的移动。