collection_utils 0.1.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +1 -0
- data/README.md +3 -3
- data/documentation/CollectionUtils/Heap.html +1276 -0
- data/documentation/CollectionUtils/HeapUtils/MaxHeap.html +490 -0
- data/documentation/CollectionUtils/HeapUtils/MinHeap.html +490 -0
- data/documentation/CollectionUtils/HeapUtils.html +117 -0
- data/documentation/CollectionUtils/Queue.html +749 -0
- data/documentation/CollectionUtils/Stack.html +674 -0
- data/documentation/CollectionUtils/TreeUtils/BST.html +515 -0
- data/documentation/CollectionUtils/TreeUtils.html +117 -0
- data/documentation/CollectionUtils.html +134 -0
- data/documentation/_index.html +211 -0
- data/documentation/class_list.html +51 -0
- data/documentation/css/common.css +1 -0
- data/documentation/css/full_list.css +58 -0
- data/documentation/css/style.css +492 -0
- data/documentation/file.README.html +124 -0
- data/documentation/file_list.html +56 -0
- data/documentation/frames.html +17 -0
- data/documentation/index.html +124 -0
- data/documentation/js/app.js +248 -0
- data/documentation/js/full_list.js +216 -0
- data/documentation/js/jquery.js +4 -0
- data/documentation/method_list.html +355 -0
- data/documentation/top-level-namespace.html +110 -0
- data/lib/collection_utils/heap.rb +251 -0
- data/lib/collection_utils/heap_utils/max_heap.rb +12 -12
- data/lib/collection_utils/heap_utils/min_heap.rb +13 -11
- data/lib/collection_utils/queue.rb +21 -0
- data/lib/collection_utils/stack.rb +25 -2
- data/lib/collection_utils/tree_utils/bst.rb +69 -0
- data/lib/collection_utils/tree_utils.rb +5 -0
- data/lib/collection_utils/version.rb +1 -1
- metadata +28 -3
- data/lib/collection_utils/heap_utils/heap.rb +0 -97
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 917412941f37688077b9cfb8204edd619dc9f9e3
|
4
|
+
data.tar.gz: 0f630cb9f5bb5cdbfd1d0e58d045dd8b6df6e563
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 971de239372c801638b03a34d0c7fdc7e1894cebbd212848f6ff4ba598cd1d0757173c9c18f4bff9d10ebf2b0d83647503bc9b639b5e4e53a31523307437250e
|
7
|
+
data.tar.gz: a8b94362e213e51afb85a4531b9d073a8586a9f27bf0e2b9b7a7d1169e9cbfd85a4f6056c0b41aa9edf976b99e93e1dfb330f5c036ca884eb3b6938b59635356
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
# CollectionUtils
|
1
|
+
# CollectionUtils [](https://travis-ci.org/deeshugupta/collection_utils)
|
2
2
|
|
3
|
-
CollectionUtils provide with basic collection templates like stack, queues and heaps e.t.c for easier development.
|
3
|
+
CollectionUtils provide with basic collection templates like stack, queues and heaps e.t.c for easier development.
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -20,7 +20,7 @@ Or install it yourself as:
|
|
20
20
|
|
21
21
|
## Usage
|
22
22
|
|
23
|
-
|
23
|
+
check out the wiki at https://github.com/deeshugupta/collection_utils/wiki for usages.
|
24
24
|
|
25
25
|
## Development
|
26
26
|
|
@@ -0,0 +1,1276 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
|
+
<title>
|
7
|
+
Class: CollectionUtils::Heap
|
8
|
+
|
9
|
+
— Documentation by YARD 0.9.9
|
10
|
+
|
11
|
+
</title>
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" />
|
14
|
+
|
15
|
+
<link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />
|
16
|
+
|
17
|
+
<script type="text/javascript" charset="utf-8">
|
18
|
+
pathId = "CollectionUtils::Heap";
|
19
|
+
relpath = '../';
|
20
|
+
</script>
|
21
|
+
|
22
|
+
|
23
|
+
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
|
24
|
+
|
25
|
+
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
|
26
|
+
|
27
|
+
|
28
|
+
</head>
|
29
|
+
<body>
|
30
|
+
<div class="nav_wrap">
|
31
|
+
<iframe id="nav" src="../class_list.html?1"></iframe>
|
32
|
+
<div id="resizer"></div>
|
33
|
+
</div>
|
34
|
+
|
35
|
+
<div id="main" tabindex="-1">
|
36
|
+
<div id="header">
|
37
|
+
<div id="menu">
|
38
|
+
|
39
|
+
<a href="../_index.html">Index (H)</a> »
|
40
|
+
<span class='title'><span class='object_link'><a href="../CollectionUtils.html" title="CollectionUtils (module)">CollectionUtils</a></span></span>
|
41
|
+
»
|
42
|
+
<span class="title">Heap</span>
|
43
|
+
|
44
|
+
</div>
|
45
|
+
|
46
|
+
<div id="search">
|
47
|
+
|
48
|
+
<a class="full_list_link" id="class_list_link"
|
49
|
+
href="../class_list.html">
|
50
|
+
|
51
|
+
<svg width="24" height="24">
|
52
|
+
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
|
53
|
+
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
|
54
|
+
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
|
55
|
+
</svg>
|
56
|
+
</a>
|
57
|
+
|
58
|
+
</div>
|
59
|
+
<div class="clear"></div>
|
60
|
+
</div>
|
61
|
+
|
62
|
+
<div id="content"><h1>Class: CollectionUtils::Heap
|
63
|
+
|
64
|
+
|
65
|
+
|
66
|
+
</h1>
|
67
|
+
<div class="box_info">
|
68
|
+
|
69
|
+
<dl>
|
70
|
+
<dt>Inherits:</dt>
|
71
|
+
<dd>
|
72
|
+
<span class="inheritName">Object</span>
|
73
|
+
|
74
|
+
<ul class="fullTree">
|
75
|
+
<li>Object</li>
|
76
|
+
|
77
|
+
<li class="next">CollectionUtils::Heap</li>
|
78
|
+
|
79
|
+
</ul>
|
80
|
+
<a href="#" class="inheritanceTree">show all</a>
|
81
|
+
|
82
|
+
</dd>
|
83
|
+
</dl>
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
<dl>
|
96
|
+
<dt>Defined in:</dt>
|
97
|
+
<dd>lib/collection_utils/heap.rb</dd>
|
98
|
+
</dl>
|
99
|
+
|
100
|
+
</div>
|
101
|
+
|
102
|
+
<div id="subclasses">
|
103
|
+
<h2>Direct Known Subclasses</h2>
|
104
|
+
<p class="children"><span class='object_link'><a href="HeapUtils/MaxHeap.html" title="CollectionUtils::HeapUtils::MaxHeap (class)">CollectionUtils::HeapUtils::MaxHeap</a></span>, <span class='object_link'><a href="HeapUtils/MinHeap.html" title="CollectionUtils::HeapUtils::MinHeap (class)">CollectionUtils::HeapUtils::MinHeap</a></span></p>
|
105
|
+
</div>
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
|
114
|
+
<h2>
|
115
|
+
Instance Method Summary
|
116
|
+
<small><a href="#" class="summary_toggle">collapse</a></small>
|
117
|
+
</h2>
|
118
|
+
|
119
|
+
<ul class="summary">
|
120
|
+
|
121
|
+
<li class="public ">
|
122
|
+
<span class="summary_signature">
|
123
|
+
|
124
|
+
<a href="#bfs-instance_method" title="#bfs (instance method)">#<strong>bfs</strong> {|element| ... } ⇒ Object </a>
|
125
|
+
|
126
|
+
|
127
|
+
|
128
|
+
</span>
|
129
|
+
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
|
138
|
+
<span class="summary_desc"><div class='inline'>
|
139
|
+
<p>bfs stands for breadth first search.</p>
|
140
|
+
</div></span>
|
141
|
+
|
142
|
+
</li>
|
143
|
+
|
144
|
+
|
145
|
+
<li class="public ">
|
146
|
+
<span class="summary_signature">
|
147
|
+
|
148
|
+
<a href="#dfs-instance_method" title="#dfs (instance method)">#<strong>dfs</strong> {|element| ... } ⇒ Object </a>
|
149
|
+
|
150
|
+
|
151
|
+
|
152
|
+
</span>
|
153
|
+
|
154
|
+
|
155
|
+
|
156
|
+
|
157
|
+
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
|
162
|
+
<span class="summary_desc"><div class='inline'>
|
163
|
+
<p>dfs stands for depth first search.</p>
|
164
|
+
</div></span>
|
165
|
+
|
166
|
+
</li>
|
167
|
+
|
168
|
+
|
169
|
+
<li class="public ">
|
170
|
+
<span class="summary_signature">
|
171
|
+
|
172
|
+
<a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(array = []) ⇒ Heap </a>
|
173
|
+
|
174
|
+
|
175
|
+
|
176
|
+
</span>
|
177
|
+
|
178
|
+
|
179
|
+
<span class="note title constructor">constructor</span>
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
|
188
|
+
<span class="summary_desc"><div class='inline'>
|
189
|
+
<p>Constructors.</p>
|
190
|
+
</div></span>
|
191
|
+
|
192
|
+
</li>
|
193
|
+
|
194
|
+
|
195
|
+
<li class="public ">
|
196
|
+
<span class="summary_signature">
|
197
|
+
|
198
|
+
<a href="#inorder-instance_method" title="#inorder (instance method)">#<strong>inorder</strong> ⇒ Array </a>
|
199
|
+
|
200
|
+
|
201
|
+
|
202
|
+
</span>
|
203
|
+
|
204
|
+
|
205
|
+
|
206
|
+
|
207
|
+
|
208
|
+
|
209
|
+
|
210
|
+
|
211
|
+
|
212
|
+
<span class="summary_desc"><div class='inline'>
|
213
|
+
<p>In-Order Traversal of Tree.</p>
|
214
|
+
</div></span>
|
215
|
+
|
216
|
+
</li>
|
217
|
+
|
218
|
+
|
219
|
+
<li class="public ">
|
220
|
+
<span class="summary_signature">
|
221
|
+
|
222
|
+
<a href="#is_empty%3F-instance_method" title="#is_empty? (instance method)">#<strong>is_empty?</strong> ⇒ Boolean </a>
|
223
|
+
|
224
|
+
|
225
|
+
|
226
|
+
</span>
|
227
|
+
|
228
|
+
|
229
|
+
|
230
|
+
|
231
|
+
|
232
|
+
|
233
|
+
|
234
|
+
|
235
|
+
|
236
|
+
<span class="summary_desc"><div class='inline'>
|
237
|
+
<p>Heap's emptiness.</p>
|
238
|
+
</div></span>
|
239
|
+
|
240
|
+
</li>
|
241
|
+
|
242
|
+
|
243
|
+
<li class="public ">
|
244
|
+
<span class="summary_signature">
|
245
|
+
|
246
|
+
<a href="#left-instance_method" title="#left (instance method)">#<strong>left</strong>(parent = 0) ⇒ Object </a>
|
247
|
+
|
248
|
+
|
249
|
+
|
250
|
+
</span>
|
251
|
+
|
252
|
+
|
253
|
+
|
254
|
+
|
255
|
+
|
256
|
+
|
257
|
+
|
258
|
+
|
259
|
+
|
260
|
+
<span class="summary_desc"><div class='inline'>
|
261
|
+
<p>Left child.</p>
|
262
|
+
</div></span>
|
263
|
+
|
264
|
+
</li>
|
265
|
+
|
266
|
+
|
267
|
+
<li class="public ">
|
268
|
+
<span class="summary_signature">
|
269
|
+
|
270
|
+
<a href="#pop-instance_method" title="#pop (instance method)">#<strong>pop</strong> ⇒ Object </a>
|
271
|
+
|
272
|
+
|
273
|
+
|
274
|
+
</span>
|
275
|
+
|
276
|
+
|
277
|
+
|
278
|
+
|
279
|
+
|
280
|
+
|
281
|
+
|
282
|
+
|
283
|
+
|
284
|
+
<span class="summary_desc"><div class='inline'>
|
285
|
+
<p>pop an element from heap.</p>
|
286
|
+
</div></span>
|
287
|
+
|
288
|
+
</li>
|
289
|
+
|
290
|
+
|
291
|
+
<li class="public ">
|
292
|
+
<span class="summary_signature">
|
293
|
+
|
294
|
+
<a href="#postorder-instance_method" title="#postorder (instance method)">#<strong>postorder</strong> ⇒ Array </a>
|
295
|
+
|
296
|
+
|
297
|
+
|
298
|
+
</span>
|
299
|
+
|
300
|
+
|
301
|
+
|
302
|
+
|
303
|
+
|
304
|
+
|
305
|
+
|
306
|
+
|
307
|
+
|
308
|
+
<span class="summary_desc"><div class='inline'>
|
309
|
+
<p>Post-Order Traversal of Tree.</p>
|
310
|
+
</div></span>
|
311
|
+
|
312
|
+
</li>
|
313
|
+
|
314
|
+
|
315
|
+
<li class="public ">
|
316
|
+
<span class="summary_signature">
|
317
|
+
|
318
|
+
<a href="#preorder-instance_method" title="#preorder (instance method)">#<strong>preorder</strong> ⇒ Array </a>
|
319
|
+
|
320
|
+
|
321
|
+
|
322
|
+
</span>
|
323
|
+
|
324
|
+
|
325
|
+
|
326
|
+
|
327
|
+
|
328
|
+
|
329
|
+
|
330
|
+
|
331
|
+
|
332
|
+
<span class="summary_desc"><div class='inline'>
|
333
|
+
<p>Pre-Order Traversal of Tree.</p>
|
334
|
+
</div></span>
|
335
|
+
|
336
|
+
</li>
|
337
|
+
|
338
|
+
|
339
|
+
<li class="public ">
|
340
|
+
<span class="summary_signature">
|
341
|
+
|
342
|
+
<a href="#push-instance_method" title="#push (instance method)">#<strong>push</strong>(element) ⇒ Object </a>
|
343
|
+
|
344
|
+
|
345
|
+
|
346
|
+
</span>
|
347
|
+
|
348
|
+
|
349
|
+
|
350
|
+
|
351
|
+
|
352
|
+
|
353
|
+
|
354
|
+
|
355
|
+
|
356
|
+
<span class="summary_desc"><div class='inline'>
|
357
|
+
<p>push element to heap.</p>
|
358
|
+
</div></span>
|
359
|
+
|
360
|
+
</li>
|
361
|
+
|
362
|
+
|
363
|
+
<li class="public ">
|
364
|
+
<span class="summary_signature">
|
365
|
+
|
366
|
+
<a href="#right-instance_method" title="#right (instance method)">#<strong>right</strong>(parent = 0) ⇒ Object </a>
|
367
|
+
|
368
|
+
|
369
|
+
|
370
|
+
</span>
|
371
|
+
|
372
|
+
|
373
|
+
|
374
|
+
|
375
|
+
|
376
|
+
|
377
|
+
|
378
|
+
|
379
|
+
|
380
|
+
<span class="summary_desc"><div class='inline'>
|
381
|
+
<p>Right child.</p>
|
382
|
+
</div></span>
|
383
|
+
|
384
|
+
</li>
|
385
|
+
|
386
|
+
|
387
|
+
<li class="public ">
|
388
|
+
<span class="summary_signature">
|
389
|
+
|
390
|
+
<a href="#size-instance_method" title="#size (instance method)">#<strong>size</strong> ⇒ Integer </a>
|
391
|
+
|
392
|
+
|
393
|
+
|
394
|
+
</span>
|
395
|
+
|
396
|
+
|
397
|
+
|
398
|
+
|
399
|
+
|
400
|
+
|
401
|
+
|
402
|
+
|
403
|
+
|
404
|
+
<span class="summary_desc"><div class='inline'>
|
405
|
+
<p>Size of heap.</p>
|
406
|
+
</div></span>
|
407
|
+
|
408
|
+
</li>
|
409
|
+
|
410
|
+
|
411
|
+
</ul>
|
412
|
+
|
413
|
+
|
414
|
+
<div id="constructor_details" class="method_details_list">
|
415
|
+
<h2>Constructor Details</h2>
|
416
|
+
|
417
|
+
<div class="method_details first">
|
418
|
+
<h3 class="signature first" id="initialize-instance_method">
|
419
|
+
|
420
|
+
#<strong>initialize</strong>(array = []) ⇒ <tt><span class='object_link'><a href="" title="CollectionUtils::Heap (class)">Heap</a></span></tt>
|
421
|
+
|
422
|
+
|
423
|
+
|
424
|
+
|
425
|
+
|
426
|
+
</h3><div class="docstring">
|
427
|
+
<div class="discussion">
|
428
|
+
|
429
|
+
<p>Constructors</p>
|
430
|
+
|
431
|
+
|
432
|
+
</div>
|
433
|
+
</div>
|
434
|
+
<div class="tags">
|
435
|
+
|
436
|
+
|
437
|
+
</div><table class="source_code">
|
438
|
+
<tr>
|
439
|
+
<td>
|
440
|
+
<pre class="lines">
|
441
|
+
|
442
|
+
|
443
|
+
122
|
444
|
+
123
|
445
|
+
124
|
446
|
+
125
|
447
|
+
126
|
448
|
+
127</pre>
|
449
|
+
</td>
|
450
|
+
<td>
|
451
|
+
<pre class="code"><span class="info file"># File 'lib/collection_utils/heap.rb', line 122</span>
|
452
|
+
|
453
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
454
|
+
<span class='ivar'>@heap</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
455
|
+
<span class='id identifier rubyid_array'>array</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_element'>element</span><span class='op'>|</span>
|
456
|
+
<span class='id identifier rubyid_push'>push</span><span class='lparen'>(</span><span class='id identifier rubyid_element'>element</span><span class='rparen'>)</span>
|
457
|
+
<span class='kw'>end</span>
|
458
|
+
<span class='kw'>end</span></pre>
|
459
|
+
</td>
|
460
|
+
</tr>
|
461
|
+
</table>
|
462
|
+
</div>
|
463
|
+
|
464
|
+
</div>
|
465
|
+
|
466
|
+
|
467
|
+
<div id="instance_method_details" class="method_details_list">
|
468
|
+
<h2>Instance Method Details</h2>
|
469
|
+
|
470
|
+
|
471
|
+
<div class="method_details first">
|
472
|
+
<h3 class="signature first" id="bfs-instance_method">
|
473
|
+
|
474
|
+
#<strong>bfs</strong> {|element| ... } ⇒ <tt>Object</tt>
|
475
|
+
|
476
|
+
|
477
|
+
|
478
|
+
|
479
|
+
|
480
|
+
</h3><div class="docstring">
|
481
|
+
<div class="discussion">
|
482
|
+
|
483
|
+
<p>bfs stands for breadth first search.</p>
|
484
|
+
|
485
|
+
|
486
|
+
</div>
|
487
|
+
</div>
|
488
|
+
<div class="tags">
|
489
|
+
|
490
|
+
<div class="examples">
|
491
|
+
<p class="tag_title">Examples:</p>
|
492
|
+
|
493
|
+
|
494
|
+
<p class="example_title"><div class='inline'>
|
495
|
+
<p>Create Heap and in bfs manner assign it to array</p>
|
496
|
+
</div></p>
|
497
|
+
|
498
|
+
<pre class="example code"><code><span class='id identifier rubyid_arr'>arr</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='int'>1</span><span class='comma'>,</span><span class='int'>2</span><span class='comma'>,</span><span class='int'>3</span><span class='comma'>,</span><span class='int'>4</span><span class='comma'>,</span><span class='int'>5</span><span class='rbracket'>]</span>
|
499
|
+
<span class='id identifier rubyid_heap'>heap</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../CollectionUtils.html" title="CollectionUtils (module)">CollectionUtils</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="" title="CollectionUtils::Heap (class)">Heap</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="#initialize-instance_method" title="CollectionUtils::Heap#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_arr'>arr</span><span class='rparen'>)</span>
|
500
|
+
<span class='id identifier rubyid_x'>x</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
501
|
+
<span class='ivar'>@heap</span><span class='period'>.</span><span class='id identifier rubyid_bfs'>bfs</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_element'>element</span><span class='op'>|</span>
|
502
|
+
<span class='id identifier rubyid_x'>x</span> <span class='op'><<</span> <span class='id identifier rubyid_element'>element</span>
|
503
|
+
<span class='kw'>end</span>
|
504
|
+
<span class='comment'>#x = [1,2,3,4,5]</span></code></pre>
|
505
|
+
|
506
|
+
</div>
|
507
|
+
|
508
|
+
<p class="tag_title">Yields:</p>
|
509
|
+
<ul class="yield">
|
510
|
+
|
511
|
+
<li>
|
512
|
+
|
513
|
+
|
514
|
+
<span class='type'>(<tt>element</tt>)</span>
|
515
|
+
|
516
|
+
|
517
|
+
|
518
|
+
—
|
519
|
+
<div class='inline'>
|
520
|
+
<p>this will take the element returned in bfs manner and execute the passed
|
521
|
+
block.</p>
|
522
|
+
</div>
|
523
|
+
|
524
|
+
</li>
|
525
|
+
|
526
|
+
</ul>
|
527
|
+
|
528
|
+
</div><table class="source_code">
|
529
|
+
<tr>
|
530
|
+
<td>
|
531
|
+
<pre class="lines">
|
532
|
+
|
533
|
+
|
534
|
+
180
|
535
|
+
181
|
536
|
+
182
|
537
|
+
183
|
538
|
+
184
|
539
|
+
185
|
540
|
+
186
|
541
|
+
187
|
542
|
+
188
|
543
|
+
189
|
544
|
+
190
|
545
|
+
191
|
546
|
+
192
|
547
|
+
193
|
548
|
+
194</pre>
|
549
|
+
</td>
|
550
|
+
<td>
|
551
|
+
<pre class="code"><span class="info file"># File 'lib/collection_utils/heap.rb', line 180</span>
|
552
|
+
|
553
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_bfs'>bfs</span>
|
554
|
+
<span class='id identifier rubyid_queue'>queue</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../CollectionUtils.html" title="CollectionUtils (module)">CollectionUtils</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Queue.html" title="CollectionUtils::Queue (class)">Queue</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Queue.html#initialize-instance_method" title="CollectionUtils::Queue#initialize (method)">new</a></span></span>
|
555
|
+
<span class='id identifier rubyid_queue'>queue</span><span class='period'>.</span><span class='id identifier rubyid_enqueue'>enqueue</span><span class='lparen'>(</span><span class='id identifier rubyid_root'><span class='object_link'><a href="../top-level-namespace.html" title="Top Level Namespace (root)">root</a></span></span><span class='rparen'>)</span>
|
556
|
+
<span class='kw'>while</span> <span class='kw'>true</span> <span class='kw'>do</span>
|
557
|
+
<span class='id identifier rubyid_node'>node</span> <span class='op'>=</span> <span class='id identifier rubyid_queue'>queue</span><span class='period'>.</span><span class='id identifier rubyid_dequeue'>dequeue</span>
|
558
|
+
<span class='kw'>next</span> <span class='kw'>if</span> <span class='id identifier rubyid_node'>node</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
559
|
+
<span class='id identifier rubyid_left'>left</span> <span class='op'>=</span> <span class='id identifier rubyid_left'>left</span><span class='lparen'>(</span><span class='id identifier rubyid_node'>node</span><span class='lbracket'>[</span><span class='symbol'>:index</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
560
|
+
<span class='id identifier rubyid_right'>right</span> <span class='op'>=</span> <span class='id identifier rubyid_right'>right</span><span class='lparen'>(</span><span class='id identifier rubyid_node'>node</span><span class='lbracket'>[</span><span class='symbol'>:index</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
561
|
+
<span class='kw'>yield</span><span class='lparen'>(</span><span class='id identifier rubyid_node'>node</span><span class='lbracket'>[</span><span class='symbol'>:element</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_block_given?'>block_given?</span>
|
562
|
+
<span class='id identifier rubyid_queue'>queue</span><span class='period'>.</span><span class='id identifier rubyid_enqueue'>enqueue</span><span class='lparen'>(</span><span class='id identifier rubyid_left'>left</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_left'>left</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
563
|
+
<span class='id identifier rubyid_queue'>queue</span><span class='period'>.</span><span class='id identifier rubyid_enqueue'>enqueue</span><span class='lparen'>(</span><span class='id identifier rubyid_right'>right</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_right'>right</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
564
|
+
<span class='kw'>break</span> <span class='kw'>if</span> <span class='id identifier rubyid_queue'>queue</span><span class='period'>.</span><span class='id identifier rubyid_is_empty?'>is_empty?</span>
|
565
|
+
<span class='kw'>end</span>
|
566
|
+
|
567
|
+
<span class='kw'>end</span></pre>
|
568
|
+
</td>
|
569
|
+
</tr>
|
570
|
+
</table>
|
571
|
+
</div>
|
572
|
+
|
573
|
+
<div class="method_details ">
|
574
|
+
<h3 class="signature " id="dfs-instance_method">
|
575
|
+
|
576
|
+
#<strong>dfs</strong> {|element| ... } ⇒ <tt>Object</tt>
|
577
|
+
|
578
|
+
|
579
|
+
|
580
|
+
|
581
|
+
|
582
|
+
</h3><div class="docstring">
|
583
|
+
<div class="discussion">
|
584
|
+
|
585
|
+
<p>dfs stands for depth first search.</p>
|
586
|
+
|
587
|
+
|
588
|
+
</div>
|
589
|
+
</div>
|
590
|
+
<div class="tags">
|
591
|
+
|
592
|
+
<div class="examples">
|
593
|
+
<p class="tag_title">Examples:</p>
|
594
|
+
|
595
|
+
|
596
|
+
<p class="example_title"><div class='inline'>
|
597
|
+
<p>Create Heap and in dfs manner assign it to array</p>
|
598
|
+
</div></p>
|
599
|
+
|
600
|
+
<pre class="example code"><code><span class='id identifier rubyid_arr'>arr</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='int'>1</span><span class='comma'>,</span><span class='int'>2</span><span class='comma'>,</span><span class='int'>3</span><span class='comma'>,</span><span class='int'>4</span><span class='comma'>,</span><span class='int'>5</span><span class='rbracket'>]</span>
|
601
|
+
<span class='id identifier rubyid_heap'>heap</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../CollectionUtils.html" title="CollectionUtils (module)">CollectionUtils</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="" title="CollectionUtils::Heap (class)">Heap</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="#initialize-instance_method" title="CollectionUtils::Heap#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_arr'>arr</span><span class='rparen'>)</span>
|
602
|
+
<span class='id identifier rubyid_x'>x</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
603
|
+
<span class='ivar'>@heap</span><span class='period'>.</span><span class='id identifier rubyid_dfs'>dfs</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_element'>element</span><span class='op'>|</span>
|
604
|
+
<span class='id identifier rubyid_x'>x</span> <span class='op'><<</span> <span class='id identifier rubyid_element'>element</span>
|
605
|
+
<span class='kw'>end</span>
|
606
|
+
<span class='comment'>#x = [1,3,2,5,4]</span></code></pre>
|
607
|
+
|
608
|
+
</div>
|
609
|
+
|
610
|
+
<p class="tag_title">Yields:</p>
|
611
|
+
<ul class="yield">
|
612
|
+
|
613
|
+
<li>
|
614
|
+
|
615
|
+
|
616
|
+
<span class='type'>(<tt>element</tt>)</span>
|
617
|
+
|
618
|
+
|
619
|
+
|
620
|
+
—
|
621
|
+
<div class='inline'>
|
622
|
+
<p>this will take the element returned in dfs manner and execute the passed
|
623
|
+
block.</p>
|
624
|
+
</div>
|
625
|
+
|
626
|
+
</li>
|
627
|
+
|
628
|
+
</ul>
|
629
|
+
|
630
|
+
</div><table class="source_code">
|
631
|
+
<tr>
|
632
|
+
<td>
|
633
|
+
<pre class="lines">
|
634
|
+
|
635
|
+
|
636
|
+
206
|
637
|
+
207
|
638
|
+
208
|
639
|
+
209
|
640
|
+
210
|
641
|
+
211
|
642
|
+
212
|
643
|
+
213
|
644
|
+
214
|
645
|
+
215
|
646
|
+
216
|
647
|
+
217
|
648
|
+
218
|
649
|
+
219</pre>
|
650
|
+
</td>
|
651
|
+
<td>
|
652
|
+
<pre class="code"><span class="info file"># File 'lib/collection_utils/heap.rb', line 206</span>
|
653
|
+
|
654
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_dfs'>dfs</span>
|
655
|
+
<span class='id identifier rubyid_stack'>stack</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../CollectionUtils.html" title="CollectionUtils (module)">CollectionUtils</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Stack.html" title="CollectionUtils::Stack (class)">Stack</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Stack.html#initialize-instance_method" title="CollectionUtils::Stack#initialize (method)">new</a></span></span>
|
656
|
+
<span class='id identifier rubyid_stack'>stack</span><span class='period'>.</span><span class='id identifier rubyid_push'>push</span><span class='lparen'>(</span><span class='id identifier rubyid_root'><span class='object_link'><a href="../top-level-namespace.html" title="Top Level Namespace (root)">root</a></span></span><span class='rparen'>)</span>
|
657
|
+
<span class='kw'>while</span> <span class='kw'>true</span> <span class='kw'>do</span>
|
658
|
+
<span class='id identifier rubyid_node'>node</span> <span class='op'>=</span> <span class='id identifier rubyid_stack'>stack</span><span class='period'>.</span><span class='id identifier rubyid_pop'>pop</span>
|
659
|
+
<span class='kw'>next</span> <span class='kw'>if</span> <span class='id identifier rubyid_node'>node</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
660
|
+
<span class='id identifier rubyid_left'>left</span> <span class='op'>=</span> <span class='id identifier rubyid_left'>left</span><span class='lparen'>(</span><span class='id identifier rubyid_node'>node</span><span class='lbracket'>[</span><span class='symbol'>:index</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
661
|
+
<span class='id identifier rubyid_right'>right</span> <span class='op'>=</span> <span class='id identifier rubyid_right'>right</span><span class='lparen'>(</span><span class='id identifier rubyid_node'>node</span><span class='lbracket'>[</span><span class='symbol'>:index</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
662
|
+
<span class='kw'>yield</span><span class='lparen'>(</span><span class='id identifier rubyid_node'>node</span><span class='lbracket'>[</span><span class='symbol'>:element</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_block_given?'>block_given?</span>
|
663
|
+
<span class='id identifier rubyid_stack'>stack</span><span class='period'>.</span><span class='id identifier rubyid_push'>push</span><span class='lparen'>(</span><span class='id identifier rubyid_left'>left</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_left'>left</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
664
|
+
<span class='id identifier rubyid_stack'>stack</span><span class='period'>.</span><span class='id identifier rubyid_push'>push</span><span class='lparen'>(</span><span class='id identifier rubyid_right'>right</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_right'>right</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
665
|
+
<span class='kw'>break</span> <span class='kw'>if</span> <span class='id identifier rubyid_stack'>stack</span><span class='period'>.</span><span class='id identifier rubyid_is_empty?'>is_empty?</span>
|
666
|
+
<span class='kw'>end</span>
|
667
|
+
<span class='kw'>end</span></pre>
|
668
|
+
</td>
|
669
|
+
</tr>
|
670
|
+
</table>
|
671
|
+
</div>
|
672
|
+
|
673
|
+
<div class="method_details ">
|
674
|
+
<h3 class="signature " id="inorder-instance_method">
|
675
|
+
|
676
|
+
#<strong>inorder</strong> ⇒ <tt>Array</tt>
|
677
|
+
|
678
|
+
|
679
|
+
|
680
|
+
|
681
|
+
|
682
|
+
</h3><div class="docstring">
|
683
|
+
<div class="discussion">
|
684
|
+
|
685
|
+
<p>In-Order Traversal of Tree</p>
|
686
|
+
|
687
|
+
|
688
|
+
</div>
|
689
|
+
</div>
|
690
|
+
<div class="tags">
|
691
|
+
|
692
|
+
<p class="tag_title">Returns:</p>
|
693
|
+
<ul class="return">
|
694
|
+
|
695
|
+
<li>
|
696
|
+
|
697
|
+
|
698
|
+
<span class='type'>(<tt>Array</tt>)</span>
|
699
|
+
|
700
|
+
|
701
|
+
|
702
|
+
—
|
703
|
+
<div class='inline'>
|
704
|
+
<p>elements of heap in in-ordered manner</p>
|
705
|
+
</div>
|
706
|
+
|
707
|
+
</li>
|
708
|
+
|
709
|
+
</ul>
|
710
|
+
|
711
|
+
</div><table class="source_code">
|
712
|
+
<tr>
|
713
|
+
<td>
|
714
|
+
<pre class="lines">
|
715
|
+
|
716
|
+
|
717
|
+
242
|
718
|
+
243
|
719
|
+
244
|
720
|
+
245
|
721
|
+
246</pre>
|
722
|
+
</td>
|
723
|
+
<td>
|
724
|
+
<pre class="code"><span class="info file"># File 'lib/collection_utils/heap.rb', line 242</span>
|
725
|
+
|
726
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_inorder'>inorder</span>
|
727
|
+
<span class='id identifier rubyid_arr'>arr</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
728
|
+
<span class='id identifier rubyid_in_order'>in_order</span><span class='lparen'>(</span><span class='id identifier rubyid_root'><span class='object_link'><a href="../top-level-namespace.html" title="Top Level Namespace (root)">root</a></span></span><span class='comma'>,</span> <span class='id identifier rubyid_arr'>arr</span><span class='rparen'>)</span>
|
729
|
+
<span class='kw'>return</span> <span class='id identifier rubyid_arr'>arr</span>
|
730
|
+
<span class='kw'>end</span></pre>
|
731
|
+
</td>
|
732
|
+
</tr>
|
733
|
+
</table>
|
734
|
+
</div>
|
735
|
+
|
736
|
+
<div class="method_details ">
|
737
|
+
<h3 class="signature " id="is_empty?-instance_method">
|
738
|
+
|
739
|
+
#<strong>is_empty?</strong> ⇒ <tt>Boolean</tt>
|
740
|
+
|
741
|
+
|
742
|
+
|
743
|
+
|
744
|
+
|
745
|
+
</h3><div class="docstring">
|
746
|
+
<div class="discussion">
|
747
|
+
|
748
|
+
<p>Returns heap's emptiness</p>
|
749
|
+
|
750
|
+
|
751
|
+
</div>
|
752
|
+
</div>
|
753
|
+
<div class="tags">
|
754
|
+
|
755
|
+
<p class="tag_title">Returns:</p>
|
756
|
+
<ul class="return">
|
757
|
+
|
758
|
+
<li>
|
759
|
+
|
760
|
+
|
761
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
762
|
+
|
763
|
+
|
764
|
+
|
765
|
+
—
|
766
|
+
<div class='inline'>
|
767
|
+
<p>heap's emptiness</p>
|
768
|
+
</div>
|
769
|
+
|
770
|
+
</li>
|
771
|
+
|
772
|
+
</ul>
|
773
|
+
|
774
|
+
</div><table class="source_code">
|
775
|
+
<tr>
|
776
|
+
<td>
|
777
|
+
<pre class="lines">
|
778
|
+
|
779
|
+
|
780
|
+
165
|
781
|
+
166
|
782
|
+
167</pre>
|
783
|
+
</td>
|
784
|
+
<td>
|
785
|
+
<pre class="code"><span class="info file"># File 'lib/collection_utils/heap.rb', line 165</span>
|
786
|
+
|
787
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_is_empty?'>is_empty?</span>
|
788
|
+
<span class='kw'>return</span> <span class='id identifier rubyid_size'>size</span> <span class='op'>==</span> <span class='int'>0</span>
|
789
|
+
<span class='kw'>end</span></pre>
|
790
|
+
</td>
|
791
|
+
</tr>
|
792
|
+
</table>
|
793
|
+
</div>
|
794
|
+
|
795
|
+
<div class="method_details ">
|
796
|
+
<h3 class="signature " id="left-instance_method">
|
797
|
+
|
798
|
+
#<strong>left</strong>(parent = 0) ⇒ <tt>Object</tt>
|
799
|
+
|
800
|
+
|
801
|
+
|
802
|
+
|
803
|
+
|
804
|
+
</h3><div class="docstring">
|
805
|
+
<div class="discussion">
|
806
|
+
|
807
|
+
<p>Returns left child</p>
|
808
|
+
|
809
|
+
|
810
|
+
</div>
|
811
|
+
</div>
|
812
|
+
<div class="tags">
|
813
|
+
<p class="tag_title">Parameters:</p>
|
814
|
+
<ul class="param">
|
815
|
+
|
816
|
+
<li>
|
817
|
+
|
818
|
+
<span class='name'>parent</span>
|
819
|
+
|
820
|
+
|
821
|
+
<span class='type'>(<tt>Integer</tt>)</span>
|
822
|
+
|
823
|
+
|
824
|
+
<em class="default">(defaults to: <tt>0</tt>)</em>
|
825
|
+
|
826
|
+
|
827
|
+
—
|
828
|
+
<div class='inline'>
|
829
|
+
<p>index for which left child needs to be returned</p>
|
830
|
+
</div>
|
831
|
+
|
832
|
+
</li>
|
833
|
+
|
834
|
+
</ul>
|
835
|
+
|
836
|
+
<p class="tag_title">Returns:</p>
|
837
|
+
<ul class="return">
|
838
|
+
|
839
|
+
<li>
|
840
|
+
|
841
|
+
|
842
|
+
<span class='type'></span>
|
843
|
+
|
844
|
+
|
845
|
+
|
846
|
+
|
847
|
+
<div class='inline'>
|
848
|
+
<p>left child</p>
|
849
|
+
</div>
|
850
|
+
|
851
|
+
</li>
|
852
|
+
|
853
|
+
</ul>
|
854
|
+
|
855
|
+
</div><table class="source_code">
|
856
|
+
<tr>
|
857
|
+
<td>
|
858
|
+
<pre class="lines">
|
859
|
+
|
860
|
+
|
861
|
+
133
|
862
|
+
134
|
863
|
+
135</pre>
|
864
|
+
</td>
|
865
|
+
<td>
|
866
|
+
<pre class="code"><span class="info file"># File 'lib/collection_utils/heap.rb', line 133</span>
|
867
|
+
|
868
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_left'>left</span><span class='lparen'>(</span><span class='id identifier rubyid_parent'>parent</span> <span class='op'>=</span> <span class='int'>0</span><span class='rparen'>)</span>
|
869
|
+
<span class='id identifier rubyid_left_child'>left_child</span><span class='lparen'>(</span><span class='id identifier rubyid_parent'>parent</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span>
|
870
|
+
<span class='kw'>end</span></pre>
|
871
|
+
</td>
|
872
|
+
</tr>
|
873
|
+
</table>
|
874
|
+
</div>
|
875
|
+
|
876
|
+
<div class="method_details ">
|
877
|
+
<h3 class="signature " id="pop-instance_method">
|
878
|
+
|
879
|
+
#<strong>pop</strong> ⇒ <tt>Object</tt>
|
880
|
+
|
881
|
+
|
882
|
+
|
883
|
+
|
884
|
+
|
885
|
+
</h3><div class="docstring">
|
886
|
+
<div class="discussion">
|
887
|
+
|
888
|
+
<p>pop an element from heap</p>
|
889
|
+
|
890
|
+
|
891
|
+
</div>
|
892
|
+
</div>
|
893
|
+
<div class="tags">
|
894
|
+
|
895
|
+
<p class="tag_title">Returns:</p>
|
896
|
+
<ul class="return">
|
897
|
+
|
898
|
+
<li>
|
899
|
+
|
900
|
+
|
901
|
+
<span class='type'></span>
|
902
|
+
|
903
|
+
|
904
|
+
|
905
|
+
|
906
|
+
<div class='inline'>
|
907
|
+
<p>removed element</p>
|
908
|
+
</div>
|
909
|
+
|
910
|
+
</li>
|
911
|
+
|
912
|
+
</ul>
|
913
|
+
|
914
|
+
</div><table class="source_code">
|
915
|
+
<tr>
|
916
|
+
<td>
|
917
|
+
<pre class="lines">
|
918
|
+
|
919
|
+
|
920
|
+
153
|
921
|
+
154
|
922
|
+
155
|
923
|
+
156</pre>
|
924
|
+
</td>
|
925
|
+
<td>
|
926
|
+
<pre class="code"><span class="info file"># File 'lib/collection_utils/heap.rb', line 153</span>
|
927
|
+
|
928
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_pop'>pop</span>
|
929
|
+
<span class='id identifier rubyid_element'>element</span> <span class='op'>=</span> <span class='ivar'>@heap</span><span class='period'>.</span><span class='id identifier rubyid_pop'>pop</span>
|
930
|
+
<span class='kw'>return</span> <span class='id identifier rubyid_element'>element</span><span class='lbracket'>[</span><span class='symbol'>:element</span><span class='rbracket'>]</span>
|
931
|
+
<span class='kw'>end</span></pre>
|
932
|
+
</td>
|
933
|
+
</tr>
|
934
|
+
</table>
|
935
|
+
</div>
|
936
|
+
|
937
|
+
<div class="method_details ">
|
938
|
+
<h3 class="signature " id="postorder-instance_method">
|
939
|
+
|
940
|
+
#<strong>postorder</strong> ⇒ <tt>Array</tt>
|
941
|
+
|
942
|
+
|
943
|
+
|
944
|
+
|
945
|
+
|
946
|
+
</h3><div class="docstring">
|
947
|
+
<div class="discussion">
|
948
|
+
|
949
|
+
<p>Post-Order Traversal of Tree</p>
|
950
|
+
|
951
|
+
|
952
|
+
</div>
|
953
|
+
</div>
|
954
|
+
<div class="tags">
|
955
|
+
|
956
|
+
<p class="tag_title">Returns:</p>
|
957
|
+
<ul class="return">
|
958
|
+
|
959
|
+
<li>
|
960
|
+
|
961
|
+
|
962
|
+
<span class='type'>(<tt>Array</tt>)</span>
|
963
|
+
|
964
|
+
|
965
|
+
|
966
|
+
—
|
967
|
+
<div class='inline'>
|
968
|
+
<p>elements of heap in post-ordered manner</p>
|
969
|
+
</div>
|
970
|
+
|
971
|
+
</li>
|
972
|
+
|
973
|
+
</ul>
|
974
|
+
|
975
|
+
</div><table class="source_code">
|
976
|
+
<tr>
|
977
|
+
<td>
|
978
|
+
<pre class="lines">
|
979
|
+
|
980
|
+
|
981
|
+
233
|
982
|
+
234
|
983
|
+
235
|
984
|
+
236
|
985
|
+
237</pre>
|
986
|
+
</td>
|
987
|
+
<td>
|
988
|
+
<pre class="code"><span class="info file"># File 'lib/collection_utils/heap.rb', line 233</span>
|
989
|
+
|
990
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_postorder'>postorder</span>
|
991
|
+
<span class='id identifier rubyid_arr'>arr</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
992
|
+
<span class='id identifier rubyid_post_order'>post_order</span><span class='lparen'>(</span><span class='id identifier rubyid_root'><span class='object_link'><a href="../top-level-namespace.html" title="Top Level Namespace (root)">root</a></span></span><span class='comma'>,</span> <span class='id identifier rubyid_arr'>arr</span><span class='rparen'>)</span>
|
993
|
+
<span class='kw'>return</span> <span class='id identifier rubyid_arr'>arr</span>
|
994
|
+
<span class='kw'>end</span></pre>
|
995
|
+
</td>
|
996
|
+
</tr>
|
997
|
+
</table>
|
998
|
+
</div>
|
999
|
+
|
1000
|
+
<div class="method_details ">
|
1001
|
+
<h3 class="signature " id="preorder-instance_method">
|
1002
|
+
|
1003
|
+
#<strong>preorder</strong> ⇒ <tt>Array</tt>
|
1004
|
+
|
1005
|
+
|
1006
|
+
|
1007
|
+
|
1008
|
+
|
1009
|
+
</h3><div class="docstring">
|
1010
|
+
<div class="discussion">
|
1011
|
+
|
1012
|
+
<p>Pre-Order Traversal of Tree</p>
|
1013
|
+
|
1014
|
+
|
1015
|
+
</div>
|
1016
|
+
</div>
|
1017
|
+
<div class="tags">
|
1018
|
+
|
1019
|
+
<p class="tag_title">Returns:</p>
|
1020
|
+
<ul class="return">
|
1021
|
+
|
1022
|
+
<li>
|
1023
|
+
|
1024
|
+
|
1025
|
+
<span class='type'>(<tt>Array</tt>)</span>
|
1026
|
+
|
1027
|
+
|
1028
|
+
|
1029
|
+
—
|
1030
|
+
<div class='inline'>
|
1031
|
+
<p>elements of heap in pre-ordered manner</p>
|
1032
|
+
</div>
|
1033
|
+
|
1034
|
+
</li>
|
1035
|
+
|
1036
|
+
</ul>
|
1037
|
+
|
1038
|
+
</div><table class="source_code">
|
1039
|
+
<tr>
|
1040
|
+
<td>
|
1041
|
+
<pre class="lines">
|
1042
|
+
|
1043
|
+
|
1044
|
+
224
|
1045
|
+
225
|
1046
|
+
226
|
1047
|
+
227
|
1048
|
+
228</pre>
|
1049
|
+
</td>
|
1050
|
+
<td>
|
1051
|
+
<pre class="code"><span class="info file"># File 'lib/collection_utils/heap.rb', line 224</span>
|
1052
|
+
|
1053
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_preorder'>preorder</span>
|
1054
|
+
<span class='id identifier rubyid_arr'>arr</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
1055
|
+
<span class='id identifier rubyid_pre_order'>pre_order</span><span class='lparen'>(</span><span class='id identifier rubyid_root'><span class='object_link'><a href="../top-level-namespace.html" title="Top Level Namespace (root)">root</a></span></span><span class='comma'>,</span> <span class='id identifier rubyid_arr'>arr</span><span class='rparen'>)</span>
|
1056
|
+
<span class='kw'>return</span> <span class='id identifier rubyid_arr'>arr</span>
|
1057
|
+
<span class='kw'>end</span></pre>
|
1058
|
+
</td>
|
1059
|
+
</tr>
|
1060
|
+
</table>
|
1061
|
+
</div>
|
1062
|
+
|
1063
|
+
<div class="method_details ">
|
1064
|
+
<h3 class="signature " id="push-instance_method">
|
1065
|
+
|
1066
|
+
#<strong>push</strong>(element) ⇒ <tt>Object</tt>
|
1067
|
+
|
1068
|
+
|
1069
|
+
|
1070
|
+
|
1071
|
+
|
1072
|
+
</h3><div class="docstring">
|
1073
|
+
<div class="discussion">
|
1074
|
+
|
1075
|
+
<p>push element to heap</p>
|
1076
|
+
|
1077
|
+
|
1078
|
+
</div>
|
1079
|
+
</div>
|
1080
|
+
<div class="tags">
|
1081
|
+
<p class="tag_title">Parameters:</p>
|
1082
|
+
<ul class="param">
|
1083
|
+
|
1084
|
+
<li>
|
1085
|
+
|
1086
|
+
<span class='name'>element</span>
|
1087
|
+
|
1088
|
+
|
1089
|
+
<span class='type'></span>
|
1090
|
+
|
1091
|
+
|
1092
|
+
|
1093
|
+
—
|
1094
|
+
<div class='inline'>
|
1095
|
+
<p>object that needs to be added to heap</p>
|
1096
|
+
</div>
|
1097
|
+
|
1098
|
+
</li>
|
1099
|
+
|
1100
|
+
</ul>
|
1101
|
+
|
1102
|
+
|
1103
|
+
</div><table class="source_code">
|
1104
|
+
<tr>
|
1105
|
+
<td>
|
1106
|
+
<pre class="lines">
|
1107
|
+
|
1108
|
+
|
1109
|
+
146
|
1110
|
+
147
|
1111
|
+
148</pre>
|
1112
|
+
</td>
|
1113
|
+
<td>
|
1114
|
+
<pre class="code"><span class="info file"># File 'lib/collection_utils/heap.rb', line 146</span>
|
1115
|
+
|
1116
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_push'>push</span><span class='lparen'>(</span><span class='id identifier rubyid_element'>element</span><span class='rparen'>)</span>
|
1117
|
+
<span class='ivar'>@heap</span> <span class='op'><<</span> <span class='lbrace'>{</span><span class='label'>element:</span> <span class='id identifier rubyid_element'>element</span><span class='comma'>,</span> <span class='label'>index:</span> <span class='id identifier rubyid_size'>size</span><span class='rbrace'>}</span>
|
1118
|
+
<span class='kw'>end</span></pre>
|
1119
|
+
</td>
|
1120
|
+
</tr>
|
1121
|
+
</table>
|
1122
|
+
</div>
|
1123
|
+
|
1124
|
+
<div class="method_details ">
|
1125
|
+
<h3 class="signature " id="right-instance_method">
|
1126
|
+
|
1127
|
+
#<strong>right</strong>(parent = 0) ⇒ <tt>Object</tt>
|
1128
|
+
|
1129
|
+
|
1130
|
+
|
1131
|
+
|
1132
|
+
|
1133
|
+
</h3><div class="docstring">
|
1134
|
+
<div class="discussion">
|
1135
|
+
|
1136
|
+
<p>Returns right child</p>
|
1137
|
+
|
1138
|
+
|
1139
|
+
</div>
|
1140
|
+
</div>
|
1141
|
+
<div class="tags">
|
1142
|
+
<p class="tag_title">Parameters:</p>
|
1143
|
+
<ul class="param">
|
1144
|
+
|
1145
|
+
<li>
|
1146
|
+
|
1147
|
+
<span class='name'>parent</span>
|
1148
|
+
|
1149
|
+
|
1150
|
+
<span class='type'>(<tt>Integer</tt>)</span>
|
1151
|
+
|
1152
|
+
|
1153
|
+
<em class="default">(defaults to: <tt>0</tt>)</em>
|
1154
|
+
|
1155
|
+
|
1156
|
+
—
|
1157
|
+
<div class='inline'>
|
1158
|
+
<p>index for which right child needs to be returned</p>
|
1159
|
+
</div>
|
1160
|
+
|
1161
|
+
</li>
|
1162
|
+
|
1163
|
+
</ul>
|
1164
|
+
|
1165
|
+
<p class="tag_title">Returns:</p>
|
1166
|
+
<ul class="return">
|
1167
|
+
|
1168
|
+
<li>
|
1169
|
+
|
1170
|
+
|
1171
|
+
<span class='type'></span>
|
1172
|
+
|
1173
|
+
|
1174
|
+
|
1175
|
+
|
1176
|
+
<div class='inline'>
|
1177
|
+
<p>right child</p>
|
1178
|
+
</div>
|
1179
|
+
|
1180
|
+
</li>
|
1181
|
+
|
1182
|
+
</ul>
|
1183
|
+
|
1184
|
+
</div><table class="source_code">
|
1185
|
+
<tr>
|
1186
|
+
<td>
|
1187
|
+
<pre class="lines">
|
1188
|
+
|
1189
|
+
|
1190
|
+
139
|
1191
|
+
140
|
1192
|
+
141</pre>
|
1193
|
+
</td>
|
1194
|
+
<td>
|
1195
|
+
<pre class="code"><span class="info file"># File 'lib/collection_utils/heap.rb', line 139</span>
|
1196
|
+
|
1197
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_right'>right</span><span class='lparen'>(</span><span class='id identifier rubyid_parent'>parent</span> <span class='op'>=</span> <span class='int'>0</span><span class='rparen'>)</span>
|
1198
|
+
<span class='id identifier rubyid_right_child'>right_child</span><span class='lparen'>(</span><span class='id identifier rubyid_parent'>parent</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span>
|
1199
|
+
<span class='kw'>end</span></pre>
|
1200
|
+
</td>
|
1201
|
+
</tr>
|
1202
|
+
</table>
|
1203
|
+
</div>
|
1204
|
+
|
1205
|
+
<div class="method_details ">
|
1206
|
+
<h3 class="signature " id="size-instance_method">
|
1207
|
+
|
1208
|
+
#<strong>size</strong> ⇒ <tt>Integer</tt>
|
1209
|
+
|
1210
|
+
|
1211
|
+
|
1212
|
+
|
1213
|
+
|
1214
|
+
</h3><div class="docstring">
|
1215
|
+
<div class="discussion">
|
1216
|
+
|
1217
|
+
<p>Returns size of heap</p>
|
1218
|
+
|
1219
|
+
|
1220
|
+
</div>
|
1221
|
+
</div>
|
1222
|
+
<div class="tags">
|
1223
|
+
|
1224
|
+
<p class="tag_title">Returns:</p>
|
1225
|
+
<ul class="return">
|
1226
|
+
|
1227
|
+
<li>
|
1228
|
+
|
1229
|
+
|
1230
|
+
<span class='type'>(<tt>Integer</tt>)</span>
|
1231
|
+
|
1232
|
+
|
1233
|
+
|
1234
|
+
—
|
1235
|
+
<div class='inline'>
|
1236
|
+
<p>size of heap</p>
|
1237
|
+
</div>
|
1238
|
+
|
1239
|
+
</li>
|
1240
|
+
|
1241
|
+
</ul>
|
1242
|
+
|
1243
|
+
</div><table class="source_code">
|
1244
|
+
<tr>
|
1245
|
+
<td>
|
1246
|
+
<pre class="lines">
|
1247
|
+
|
1248
|
+
|
1249
|
+
160
|
1250
|
+
161
|
1251
|
+
162</pre>
|
1252
|
+
</td>
|
1253
|
+
<td>
|
1254
|
+
<pre class="code"><span class="info file"># File 'lib/collection_utils/heap.rb', line 160</span>
|
1255
|
+
|
1256
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_size'>size</span>
|
1257
|
+
<span class='kw'>return</span> <span class='ivar'>@heap</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span>
|
1258
|
+
<span class='kw'>end</span></pre>
|
1259
|
+
</td>
|
1260
|
+
</tr>
|
1261
|
+
</table>
|
1262
|
+
</div>
|
1263
|
+
|
1264
|
+
</div>
|
1265
|
+
|
1266
|
+
</div>
|
1267
|
+
|
1268
|
+
<div id="footer">
|
1269
|
+
Generated on Thu Jul 20 01:32:56 2017 by
|
1270
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
1271
|
+
0.9.9 (ruby-2.0.0).
|
1272
|
+
</div>
|
1273
|
+
|
1274
|
+
</div>
|
1275
|
+
</body>
|
1276
|
+
</html>
|