python 与 数据结构 第三章 线性表 (中)

3.3 链接表

基于链接技术实现的线性表称为链接表或者链表

3.2.3 单链表
  • 一个单链表由一些具体的表节点构成
  • 每个节点是一个对象,有自己的标识
  • 节点之间通过节点链接建立起单向的顺序联系

定义一个简单的表结点类:

class LNode:
    def __init__(self, elem, next_=None):
        self.elem = elem
        self.next = next_

Read More

python 与 数据结构 第三章 线性表 (上)

3.1 线性表抽象数据类型

1
2
3
4
5
6
7
8
9
10
11
12
ADT List:
List(self) # 一个表抽象数据类型
is_empty(self) # 判断 self 是否为一个空表
len(self) # 获得 self 的长度
prepend(self, elem) # 将元素 elem 加入表中作为第一个元素
append(self, elem) # 将元素 elem 加入表中作为最后一个元素
insert(self, elem, i) # 将 elem 加入表中作为第 i 个元素, 其他元素的顺序不变
del_first(self) # 删除表中的首元素
del_last(self) # 删除表中尾元素
del(self) # 删除表中第 i 个元素
search(self, elem) # 查找元素 elem 在表中出现的位置, 不出现时返回 -1
forall(self, op) # 对表中的每个元素执行操作 op

Read More

django 源码分析 - base36编码函数

0x01

首先介绍一下什么是 base36编码,它的编码中包含0~9的数字,加上所有26个字母,不区分大小写,不包含任何标点,所有的字母要不全大写,要不全小写。所以加起来就是 “0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”,
或者 ‘0123456789abcdefghijklmnopqrstuvwxyz’,同样的还有 base62编码,就是26个字母的大小写再加上0-9,一共62个字符。

Read More