126 lines
2.2 KiB
Markdown
126 lines
2.2 KiB
Markdown
# Array List
|
|
|
|
Implements a custom dynamic array (similar to a standard Vector) that manually manages memory allocation and resizing. It includes built-in Binary Heap logic to perform in-place Heapsort and priority-queue operations (like deleting the top element). It also features a utility to visualize the array's internal structure as a printed ASCII tree.
|
|
|
|
Execution result:
|
|
```
|
|
Data unsorted: [0, 1, 4, 9, 16, 25, 36, 0, 8, 18, 30, 44, 60, 78, 0, 15, 32, 51, 72, 95, 120, 0, 22, 46, 72, 100, 130, 162, 0, 29, 60, 93]
|
|
┌ 93
|
|
┌ 15
|
|
┌ 0
|
|
│ └ 32
|
|
┌ 9
|
|
│ │ ┌ 51
|
|
│ └ 8
|
|
│ └ 72
|
|
┌ 1
|
|
│ │ ┌ 95
|
|
│ │ ┌ 18
|
|
│ │ │ └ 120
|
|
│ └ 16
|
|
│ │ ┌ 0
|
|
│ └ 30
|
|
│ └ 22
|
|
0
|
|
│ ┌ 46
|
|
│ ┌ 44
|
|
│ │ └ 72
|
|
│ ┌ 25
|
|
│ │ │ ┌ 100
|
|
│ │ └ 60
|
|
│ │ └ 130
|
|
└ 4
|
|
│ ┌ 162
|
|
│ ┌ 78
|
|
│ │ └ 0
|
|
└ 36
|
|
│ ┌ 29
|
|
└ 0
|
|
└ 60
|
|
|
|
Data ascending: [0, 0, 0, 0, 0, 1, 4, 8, 9, 15, 16, 18, 22, 25, 29, 30, 32, 36, 44, 46, 51, 60, 60, 72, 72, 78, 93, 95, 100, 120, 130, 162]
|
|
┌ 162
|
|
┌ 30
|
|
┌ 8
|
|
│ └ 32
|
|
┌ 0
|
|
│ │ ┌ 36
|
|
│ └ 9
|
|
│ └ 44
|
|
┌ 0
|
|
│ │ ┌ 46
|
|
│ │ ┌ 15
|
|
│ │ │ └ 51
|
|
│ └ 0
|
|
│ │ ┌ 60
|
|
│ └ 16
|
|
│ └ 60
|
|
0
|
|
│ ┌ 72
|
|
│ ┌ 18
|
|
│ │ └ 72
|
|
│ ┌ 1
|
|
│ │ │ ┌ 78
|
|
│ │ └ 22
|
|
│ │ └ 93
|
|
└ 0
|
|
│ ┌ 95
|
|
│ ┌ 25
|
|
│ │ └ 100
|
|
└ 4
|
|
│ ┌ 120
|
|
└ 29
|
|
└ 130
|
|
|
|
Data descending: [162, 130, 120, 100, 95, 93, 78, 72, 72, 60, 60, 51, 46, 44, 36, 32, 30, 29, 25, 22, 18, 16, 15, 9, 8, 4, 1, 0, 0, 0, 0, 0]
|
|
┌ 0
|
|
┌ 32
|
|
┌ 72
|
|
│ └ 30
|
|
┌ 100
|
|
│ │ ┌ 29
|
|
│ └ 72
|
|
│ └ 25
|
|
┌ 130
|
|
│ │ ┌ 22
|
|
│ │ ┌ 60
|
|
│ │ │ └ 18
|
|
│ └ 95
|
|
│ │ ┌ 16
|
|
│ └ 60
|
|
│ └ 15
|
|
162
|
|
│ ┌ 9
|
|
│ ┌ 51
|
|
│ │ └ 8
|
|
│ ┌ 93
|
|
│ │ │ ┌ 4
|
|
│ │ └ 46
|
|
│ │ └ 1
|
|
└ 120
|
|
│ ┌ 0
|
|
│ ┌ 44
|
|
│ │ └ 0
|
|
└ 78
|
|
│ ┌ 0
|
|
└ 36
|
|
└ 0
|
|
|
|
|
|
Data [1, 12, 9, 5, 6, 10]
|
|
┌ 5
|
|
┌ 12
|
|
│ └ 6
|
|
1
|
|
│ ┌ 10
|
|
└ 9
|
|
Deleting top: Some(12)
|
|
┌ 5
|
|
┌ 6
|
|
│ └ 1
|
|
10
|
|
└ 9
|
|
|
|
Deleting top with one element: None
|
|
```
|