@@ -69,7 +69,9 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
69
69
<class 'bintrees.bintree.BinaryTree'>
70
70
71
71
- 逐个增加键值对:.__ setitem__ (k,v) .复杂度O(log(n))(后续说明中,都会有复杂度标示,为了简单,直接标明:O(log(n)).)
72
-
72
+
73
+ 看例子:
74
+
73
75
>>> btree.__setitem__("Tom","headmaster")
74
76
>>> btree
75
77
BinaryTree({'Tom': 'headmaster'})
@@ -79,13 +81,17 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
79
81
80
82
- 批量添加:.update(E) E是dict/iterable,将E批量更新入btree. O(E* log(n))
81
83
84
+ 看例子:
85
+
82
86
>>> adict = [(2,"phone"),(5,"tea"),(9,"scree"),(7,"computer")]
83
87
>>> btree.update(adict)
84
88
>>> btree
85
89
BinaryTree({2: 'phone', 5: 'tea', 7: 'computer', 9: 'scree', 'Tom': 'headmaster', 'blog': 'http://blog.csdn.net/qiwsir'})
86
90
87
91
- 查找某个key是否存在:.__ contains__ (k) 如果含有键k,则返回True,否则返回False. O(log(n))
88
92
93
+ 看例子:
94
+
89
95
>>> btree
90
96
BinaryTree({2: 'phone', 5: 'tea', 7: 'computer', 9: 'scree', 'Tom': 'headmaster', 'blog': 'http://blog.csdn.net/qiwsir'})
91
97
>>> btree.__contains__(5)
@@ -99,6 +105,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
99
105
100
106
- 根据key删除某个key-value:.__ delitem__ (key), O(log(n))
101
107
108
+ 看例子:
109
+
102
110
>>> btree
103
111
BinaryTree({2: 'phone', 5: 'tea', 7: 'computer', 9: 'scree', 'Tom': 'headmaster', 'blog': 'http://blog.csdn.net/qiwsir'})
104
112
>>> btree.__delitem__(5) #删除key=5的key-value,即:5:'tea' 被删除.
@@ -107,6 +115,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
107
115
108
116
- 根据key值得到该kye的value:.__ getitem__ (key)
109
117
118
+ 看例子:
119
+
110
120
>>> btree
111
121
BinaryTree({2: 'phone', 7: 'computer', 9: 'scree', 'Tom': 'headmaster', 'blog': 'http://blog.csdn.net/qiwsir'})
112
122
>>> btree.__getitem__("blog")
@@ -120,6 +130,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
120
130
121
131
- 迭代器:.__ iter__ ()
122
132
133
+ 看例子:
134
+
123
135
>>> btree
124
136
BinaryTree({2: 'phone', 7: 'computer', 9: 'scree', 'Tom': 'headmaster', 'blog': 'http://blog.csdn.net/qiwsir'})
125
137
>>> aiter = btree.__iter__()
@@ -138,6 +150,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
138
150
139
151
- 数的数据长度:.__ len__ (),返回btree的长度。O(1)
140
152
153
+ 看例子:
154
+
141
155
>>> btree
142
156
BinaryTree({2: 'phone', 7: 'computer', 9: 'scree', 'Tom': 'headmaster', 'blog': 'http://blog.csdn.net/qiwsir'})
143
157
>>> btree.__len__()
@@ -147,6 +161,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
147
161
148
162
- 找出key最小的键值对:.__ min__ ()
149
163
164
+ 看例子:
165
+
150
166
>>> btree
151
167
BinaryTree({2: 'phone', 7: 'computer', 9: 'scree'})
152
168
>>> btree.__max__()
@@ -156,6 +172,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
156
172
157
173
- 两棵树的关系运算
158
174
175
+ 看例子:
176
+
159
177
>>> other = [(3,'http://blog.csdn.net/qiwsir'),(7,'qiwsir')]
160
178
>>> bother = BinaryTree() #再建一个树
161
179
>>> bother.update(other) #加入数据
@@ -179,13 +197,17 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
179
197
180
198
- 输出字符串模样,注意仅仅是输出的模样罢了:.__ repr__ ()
181
199
200
+ 看例子:
201
+
182
202
>>> btree
183
203
BinaryTree({2: 'phone', 7: 'computer', 9: 'scree'})
184
204
>>> btree.__repr__()
185
205
"BinaryTree({2: 'phone', 7: 'computer', 9: 'scree'})"
186
206
187
207
- 清空树中的所有数据:.clear(),O(log(n))
188
208
209
+ 看例子:
210
+
189
211
>>> bother
190
212
BinaryTree({3: 'http://blog.csdn.net/qiwsir', 7: 'qiwsir'})
191
213
>>> bother.clear()
@@ -196,6 +218,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
196
218
197
219
- 浅拷贝:.copy(),官方文档上说是浅拷贝,但是我做了操作实现,是下面所示,还不是很理解其“浅”的含义。O(n* log(n))
198
220
221
+ 看例子:
222
+
199
223
>>> btree
200
224
BinaryTree({2: 'phone', 7: 'computer', 9: 'scree'})
201
225
>>> ctree = btree.copy()
@@ -216,6 +240,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
216
240
217
241
- 移除树中的一个数据:.discard(key),这个功能与.__ delitem__ (key)类似.两者都不反悔值。O(log(n))
218
242
243
+ 看例子:
244
+
219
245
>>> ctree
220
246
BinaryTree({2: 'phone', 9: 'scree'})
221
247
>>> ctree.discard(2) #删除后,不返回值,或者返回None
@@ -234,6 +260,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
234
260
235
261
- 根据key查找,并返回或返回备用值:.get(key[ ,d] )。如果key在树中存在,则返回value,否则如果有d,则返回d值。O(log(n))
236
262
263
+ 看例子:
264
+
237
265
>>> btree
238
266
BinaryTree({2: 'phone', 7: 'computer', 9: 'scree', 'github': 'qiwsir'})
239
267
>>> btree.get(2,"algorithm")
@@ -245,6 +273,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
245
273
246
274
- 判断树是否为空:is_empty().根据树数据的长度,如果数据长度为0,则为空。O(1)
247
275
276
+ 看例子:
277
+
248
278
>>> ctree
249
279
BinaryTree({9: 'scree'})
250
280
>>> ctree.clear() #清空数据
@@ -264,6 +294,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
264
294
>> .values([ reverse] )--value. O(n)
265
295
>> .iter_items(s,e[ ,reverse] --s,e是key的范围,也就是生成在某个范围内的key的迭代器 O(n)
266
296
297
+ 看例子:
298
+
267
299
>>> btree
268
300
BinaryTree({2: 'phone', 7: 'computer', 9: 'scree', 'github': 'qiwsir'})
269
301
>>> for (k,v) in btree.items():
@@ -310,6 +342,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
310
342
>> .pop(key[ ,d] ), 根据key删除树的数据,并返回该value,但是如果没有,并也指定了备选返回的d,则返回d,如果没有d,则报错;
311
343
>> .pop_item(),在树中随机选择(key,value)删除,并返回。
312
344
345
+ 看例子:
346
+
313
347
>>> ctree = btree.copy()
314
348
>>> ctree
315
349
BinaryTree({2: 'phone', 7: 'computer', 9: 'scree', 'github': 'qiwsir'})
@@ -335,6 +369,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
335
369
336
370
- 查找数据,并返回value:.set_default(key[ ,d] ),在树的数据中查找key,如果存在,则返回该value。如果不存在,当指定了d,则将该(key,d)添加到树内;当不指定d的时候,添加(key,None). O(log(n))
337
371
372
+ 看例子:
373
+
338
374
>>> btree
339
375
BinaryTree({2: 'phone', 7: 'computer', 9: 'scree', 'github': 'qiwsir'})
340
376
>>> btree.set_default(7) #存在则返回
@@ -361,6 +397,8 @@ bintrees提供了丰富的API,涵盖了通常的多种应用。下面逐条说
361
397
>> .remove(key),删除(key,value)
362
398
>> .remove_items(keys),keys是一个key组成的list,逐个删除树中的对应数据
363
399
400
+ 看例子:
401
+
364
402
>>> ctree
365
403
BinaryTree({2: 'phone', 5: None, 7: 'computer', 8: 'eight', 9: 'scree', 'github': 'qiwsir'})
366
404
>>> ctree.remove_items([5,6]) #key=6,不存在,报错
0 commit comments