@@ -69,7 +69,9 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
6969 <class 'bintrees.bintree.BinaryTree'>
7070
7171- 逐个增加键值对:.__ setitem__ (k,v) .复杂度O(log(n))(后续说明中,都会有复杂度标示,为了简单,直接标明:O(log(n)).)
72-
72+
73+ 看例子:
74+
7375 >>> btree.__setitem__("Tom","headmaster")
7476 >>> btree
7577 BinaryTree({'Tom': 'headmaster'})
@@ -79,13 +81,17 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
7981
8082- 批量添加:.update(E) E是dict/iterable,将E批量更新入btree. O(E* log(n))
8183
84+ 看例子:
85+
8286 >>> adict = [(2,"phone"),(5,"tea"),(9,"scree"),(7,"computer")]
8387 >>> btree.update(adict)
8488 >>> btree
8589 BinaryTree({2: 'phone', 5: 'tea', 7: 'computer', 9: 'scree', 'Tom': 'headmaster', 'blog': 'http://blog.csdn.net/qiwsir'})
8690
8791- 查找某个key是否存在:.__ contains__ (k) 如果含有键k,则返回True,否则返回False. O(log(n))
8892
93+ 看例子:
94+
8995 >>> btree
9096 BinaryTree({2: 'phone', 5: 'tea', 7: 'computer', 9: 'scree', 'Tom': 'headmaster', 'blog': 'http://blog.csdn.net/qiwsir'})
9197 >>> btree.__contains__(5)
@@ -99,6 +105,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
99105
100106- 根据key删除某个key-value:.__ delitem__ (key), O(log(n))
101107
108+ 看例子:
109+
102110 >>> btree
103111 BinaryTree({2: 'phone', 5: 'tea', 7: 'computer', 9: 'scree', 'Tom': 'headmaster', 'blog': 'http://blog.csdn.net/qiwsir'})
104112 >>> btree.__delitem__(5) #删除key=5的key-value,即:5:'tea' 被删除.
@@ -107,6 +115,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
107115
108116- 根据key值得到该kye的value:.__ getitem__ (key)
109117
118+ 看例子:
119+
110120 >>> btree
111121 BinaryTree({2: 'phone', 7: 'computer', 9: 'scree', 'Tom': 'headmaster', 'blog': 'http://blog.csdn.net/qiwsir'})
112122 >>> btree.__getitem__("blog")
@@ -120,6 +130,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
120130
121131- 迭代器:.__ iter__ ()
122132
133+ 看例子:
134+
123135 >>> btree
124136 BinaryTree({2: 'phone', 7: 'computer', 9: 'scree', 'Tom': 'headmaster', 'blog': 'http://blog.csdn.net/qiwsir'})
125137 >>> aiter = btree.__iter__()
@@ -138,6 +150,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
138150
139151- 数的数据长度:.__ len__ (),返回btree的长度。O(1)
140152
153+ 看例子:
154+
141155 >>> btree
142156 BinaryTree({2: 'phone', 7: 'computer', 9: 'scree', 'Tom': 'headmaster', 'blog': 'http://blog.csdn.net/qiwsir'})
143157 >>> btree.__len__()
@@ -147,6 +161,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
147161
148162- 找出key最小的键值对:.__ min__ ()
149163
164+ 看例子:
165+
150166 >>> btree
151167 BinaryTree({2: 'phone', 7: 'computer', 9: 'scree'})
152168 >>> btree.__max__()
@@ -156,6 +172,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
156172
157173- 两棵树的关系运算
158174
175+ 看例子:
176+
159177 >>> other = [(3,'http://blog.csdn.net/qiwsir'),(7,'qiwsir')]
160178 >>> bother = BinaryTree() #再建一个树
161179 >>> bother.update(other) #加入数据
@@ -179,13 +197,17 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
179197
180198- 输出字符串模样,注意仅仅是输出的模样罢了:.__ repr__ ()
181199
200+ 看例子:
201+
182202 >>> btree
183203 BinaryTree({2: 'phone', 7: 'computer', 9: 'scree'})
184204 >>> btree.__repr__()
185205 "BinaryTree({2: 'phone', 7: 'computer', 9: 'scree'})"
186206
187207- 清空树中的所有数据:.clear(),O(log(n))
188208
209+ 看例子:
210+
189211 >>> bother
190212 BinaryTree({3: 'http://blog.csdn.net/qiwsir', 7: 'qiwsir'})
191213 >>> bother.clear()
@@ -196,6 +218,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
196218
197219- 浅拷贝:.copy(),官方文档上说是浅拷贝,但是我做了操作实现,是下面所示,还不是很理解其“浅”的含义。O(n* log(n))
198220
221+ 看例子:
222+
199223 >>> btree
200224 BinaryTree({2: 'phone', 7: 'computer', 9: 'scree'})
201225 >>> ctree = btree.copy()
@@ -216,6 +240,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
216240
217241- 移除树中的一个数据:.discard(key),这个功能与.__ delitem__ (key)类似.两者都不反悔值。O(log(n))
218242
243+ 看例子:
244+
219245 >>> ctree
220246 BinaryTree({2: 'phone', 9: 'scree'})
221247 >>> ctree.discard(2) #删除后,不返回值,或者返回None
@@ -234,6 +260,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
234260
235261- 根据key查找,并返回或返回备用值:.get(key[ ,d] )。如果key在树中存在,则返回value,否则如果有d,则返回d值。O(log(n))
236262
263+ 看例子:
264+
237265 >>> btree
238266 BinaryTree({2: 'phone', 7: 'computer', 9: 'scree', 'github': 'qiwsir'})
239267 >>> btree.get(2,"algorithm")
@@ -245,6 +273,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
245273
246274- 判断树是否为空:is_empty().根据树数据的长度,如果数据长度为0,则为空。O(1)
247275
276+ 看例子:
277+
248278 >>> ctree
249279 BinaryTree({9: 'scree'})
250280 >>> ctree.clear() #清空数据
@@ -264,6 +294,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
264294>> .values([ reverse] )--value. O(n)
265295>> .iter_items(s,e[ ,reverse] --s,e是key的范围,也就是生成在某个范围内的key的迭代器 O(n)
266296
297+ 看例子:
298+
267299 >>> btree
268300 BinaryTree({2: 'phone', 7: 'computer', 9: 'scree', 'github': 'qiwsir'})
269301 >>> for (k,v) in btree.items():
@@ -310,6 +342,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
310342>> .pop(key[ ,d] ), 根据key删除树的数据,并返回该value,但是如果没有,并也指定了备选返回的d,则返回d,如果没有d,则报错;
311343>> .pop_item(),在树中随机选择(key,value)删除,并返回。
312344
345+ 看例子:
346+
313347 >>> ctree = btree.copy()
314348 >>> ctree
315349 BinaryTree({2: 'phone', 7: 'computer', 9: 'scree', 'github': 'qiwsir'})
@@ -335,6 +369,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
335369
336370- 查找数据,并返回value:.set_default(key[ ,d] ),在树的数据中查找key,如果存在,则返回该value。如果不存在,当指定了d,则将该(key,d)添加到树内;当不指定d的时候,添加(key,None). O(log(n))
337371
372+ 看例子:
373+
338374 >>> btree
339375 BinaryTree({2: 'phone', 7: 'computer', 9: 'scree', 'github': 'qiwsir'})
340376 >>> btree.set_default(7) #存在则返回
@@ -361,6 +397,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
361397>> .remove(key),删除(key,value)
362398>> .remove_items(keys),keys是一个key组成的list,逐个删除树中的对应数据
363399
400+ 看例子:
401+
364402 >>> ctree
365403 BinaryTree({2: 'phone', 5: None, 7: 'computer', 8: 'eight', 9: 'scree', 'github': 'qiwsir'})
366404 >>> ctree.remove_items([5,6]) #key=6,不存在,报错
0 commit comments