@thinkaboutthebible, yeah, I did see he covered trees in detail. That’s great.
Simple historical episodes can just be represented as a linked list with:
event A → event B → event C.
That’s typically concretized in the mnemonic world as a memory palace, so that:
- link node memory address → locus object
- events → items stored in link node
- pointer to next link node → your knowledge of how to traverse from the locus object to the next locus object
But complex historical episodes might be represented as a directed acyclic graph (DAG) with:
event A → event B → event C
event A → event A’ → event B
event X → event C
…
These seem to have a tree-ish nature. But they’re very unbalanced trees. Once a tree is unbalanced enough, you’re right back to the linked list. So if I had to pick one simple data structure into which I’d shoehorn my historical episode using some hacks, I’d go with the linked list. I think the hack would be to take travesal paths very seriously. So, in the last example, I’d have A, B, C, A’, X as items in a memory palace. A and X would represent starting points in the memory palace. I could get to the terminal item C via traversals A → B → C; A → A’ → B → C; or X → C. But I could not get to C via X → B → C. There’s something blocking my traversal path X → B. I’m not sure how to represent that well.
I think there could be a lot to be gained by thinking in more detail about traversal paths. They seem to be a “later-chapter” topic in the human mnemonics world right now. That’s understandable:
- you have to get your basic array lists and linked lists working first
- array lists and linked lists suffice for excellent performance in memory competition, and that’s where the most interest is.
Traversal paths were a theme in How to implement a mental priority queue? For me, it’s a really interesting problem:
- we understand the abstract concept of a priority queue,
- we know how to implement it on a computer
- we, as humans, can maintain it naturally in our heads
- so our brains unconsciously implement it somehow…
- so how do our brains implement it!?
- if we could understand that, we could understand how one might have implemented theirs well or poorly
- if we could understand that, we could make recommendations for how one might tweak theirs for better performance, reducing their problems with forgetfulness.
I think the best proposed solution for implementing a mental priority queue involved re-thinking traversal paths, making them the star of the data structure show.
I had coffee this morning.