2017-09-01 01:33:06 (edited by ea_accessible 2017-09-01 01:36:31)

I just had a friend ask me the following. Does anyone here have suggestions?

quote Anyone have thoughts on how to represent search trees in a decently accessible text format? I’ve got a blind student in my data structures class, and we’re starting with tree rotation and balancing. end quote

2017-09-01 03:18:54 (edited by magurp244 2017-09-01 03:35:33)

Hm, recall someone else asking about geometric graphs in discrete mathematics, [here]. In text though, first thing to come to mind would be a tree list like those in [wxpython], for example:

Root A:
    Branch B
        Item 1
        Item 2
    Branch C
    Branch D
        Item 3
        Branch F
    Branch E

With screen readers like NVDA its usually voiced as something like "Branch B, expanded, 1 of 4, level 1", with root being level 0. If navigating the contents of Branch B it would say something like "Item 1, 1 of 2, level 2", etc.

-BrushTone v1.3.3: Accessible Paint Tool
-AudiMesh3D v1.0.0: Accessible 3D Model Viewer

2017-09-01 04:42:14

I know of several students that learned these concepts using GSK (http://go.ncsu.edu/GSK), which is a program for creating accessible graphs (node-link diagrams).

2017-09-01 12:31:17

Another way, if admittedly hackjob, is to use an actual directory structure.
7-zip in particular works very well for creating and working with these, since you can just hit a key for create new folder or file (folders are nodes, files are leaves).
Especially if you get into something like redblack trees this may work well, since you can make a folder called a(red), etc. I'd give a more detailed example but I don't actually recall the rules for redblack trees off the top of my head.
The most obvious challenge I see when using GSK for this is that its not really easy to draw a tree as you go. You have to place the nodes on the coordinate graph, and if you're shifting a tree around, that's going to get really frustrating.

I hope this helps a little, and best of luck to you and your friend.

2017-09-01 18:28:38

Thanks, I sent a link to this thread to my friend. He found it helpful. - Karen Stevens

2017-09-01 19:59:02

Another possibility is to use Wikki Stix or something similar to easily create tactile representations. Having learnt and implemented a self-balancing AVL tree, being able to visualize the shape of the tree for each type of rotation is extremely useful to understand the algorithm, which would be harder to get by reading code or trying to decode trees.

2017-09-02 00:15:11

@secretknight42 I wish I learned about gsk last year when I did an algorithms course.
It would have seriously made my life easier.