File: TODO

package info (click to toggle)
gambas3 3.20.4-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 77,208 kB
  • sloc: ansic: 197,232; cpp: 124,273; sh: 18,999; javascript: 7,761; sql: 5,399; makefile: 2,358; perl: 1,397; xml: 490; python: 335
file content (55 lines) | stat: -rw-r--r-- 2,466 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
NOTE that one should not compare elements in a list based on their indices.
If List2 is an exact copy of List1 and both Currents point to the same
element, it is not guaranteed that List1.Index = List2.Index because one of
them could be the negative equivalent of the other (non-negative) one.

* OPT: Dynamically add up to 8 anchors to increase the chance of finding a
  very good anchor for traversals. These are automatically updated on
  append/prepend/take operations to be widespread across the List.
* OPT: Also save an anchor of the last element obtained via _get().
  Sequential traversal with indices should now be almost array-like in
  speed.

* BUG: Current can be used as an enumerator now without corrupting the list
  and also if it is initially invalid.

* OPT: Make the VAL_append()/prepend() algorithms more clever: They can use
  any neighbour chunk now to borrow space for the inserted value. This
  measure reduces list fragmentation and also enables to satisfy the (L)
  postulate.

* NEW: Push() and Pop() are new methods of the List class to save and
  restore anchors from a Gambas program. These can be used to quickly go
  back to a formerly-visited element.

AvlTree:
* NEW: Add a Copy() method to return a deep copy of an AvlTree.
* NEW: Split() is a new method of AvlTree to return the left or right
  subtree of a given node or both.
* NEW: Add Insert() to insert an AvlTree into another one. (See a thread on
  stackoverflow about an O(log n) algorithm for that.)
* NEW: Add the Reverse virtual property to traver in reverse in-order.

Graph:
* Write down the hidden methods and their signatures
* Set down the relationships between methods; which default implementation
  calls what; what is minimum needed to implement a fully-functional Graph
* NEW: Add default implementations for some hidden functions

RedBlackTree:
* NEW: RedBlackTree class.

SearchTree:
* NEW: SearchTree is the base class of all search trees.

PrioQueue:
* NEW: Re-implement PrioQueue using a RedBlackTree.
  -> contain structures (key, time, value) where key is the key and time
  is a logical timestamp (rbtree->clock++). If key1 == key2, then compare
  the unique insertion timestamps.
* OPT: Don't have Integer priority parameters. Consistently use
  GB.CompVariant() to compare elements. This is at least as mighty as
  integer priorities, but better encapsulated.

- Use libtree to provide some trees (if possible).
- General, navigatable tree class.