Here is a very simple tree with two branches:

Two-branch tree
These are the steps that a simple computer program follows to draw the tree, with a red arrow indicating where the computer’s focus is at each stage:

Two-branch tree stage 1

2-Tree stage 2

2-Tree stage 3

2-Tree stage 4

2-Tree (animated)
If you had to give the computer an explicit instruction at each stage, the instructions might look something like this:
1. Start at node 1, draw a left branch to node 2 and colour the node green.
2. Return to node 1.
3. Draw a right branch to node 3 and colour the node green.
4. Finish.
Now try a slightly less simple tree with branches that fork twice:

Four-branch tree (static)
These are the steps that a simple computer program follows to draw the tree, with a red arrow indicating where the computer’s focus is at each stage:

4-Tree #1

4-Tree #2

4-Tree #3

4-Tree #4

4-Tree #5

4-Tree #6

4-Tree #7

4-Tree #8

4-Tree #9

4-Tree #10

4-Tree #11

4-Tree (animated)
If you had to give the computer an explicit instruction at each stage, the instructions might look something like this:
1. Start at node 1 and draw a left branch to node 2.
2. Draw a left branch to node 3 and colour it green.
3. Return to node 2.
4. Draw a right branch to node 4 and colour it green.
5. Return to node 2.
6. Return to node 1.
7. Draw a right branch to node 5.
8. Draw a left branch to node 6.
9. Draw a left branch to node 7 and colour it green.
10. Return to node 6.
11. Draw a left branch to node 8 and colour it green.
12. Finish.
It’s easy to see that the list of instructions would be much bigger for a tree with branches that fork three times, let alone four times or you. But you don’t need to give a full set of explicit instructions: you can use a program, or a list of instructions using variables. Suppose the tree has branches that fork f times. If f = 4, you will need an array variable level() with four values, level(1), level(2), level(3) and level(4). Now follow these instructions:
1. li = 1, level(1) = 0, level(2) = 0, ... level(f+1) = 0
2. level(li) = level(li) + 1
3. If level(li) = 1, draw a branch to the left and jump to step 7
4. If level(li) = 2, draw a branch to the right and jump to step 7
5. li = li - 1 (note that this line is reached if the tests fail in lines 3 and 4)
6. If li > 0, jump to step 2, otherwise jump to step 11
7. If li = f, draw a green node and jump to step 5
9. li = li + 1
10. Jump to step 2
11. Finish.
By changing the value of f, a computer can use those eleven basic instructions to draw any size of tree (I’ve left out details like changes in the length of branches and so on). When f = 4, the tree will look like this:

16-Tree (static)

16-Tree (animated)
With simple adjustments, the program can be used for other shapes whose underlying structure can be represented symbolically as a tree. The program is in fact a fractalizer, that is, it draws a fractal. So if you use a version of the program to draw fractals based on right-triangles, you can say you are “tright treeing” (tright = triangle-that-is-right).
Here is some tright treeing. Start with a simple isoceles right-triangle. It can be divided into smaller isoceles right-triangles by finding the midpoint of the hypotenuse, then repeating:

Right-triangle rep-2 stage 1

Right-triangle #2

Tright #3

Tright #4

Tright #5

Tright #6

Tright #7

Tright #7 (no internal lines)
You can distort the isoceles right-triangle in interesting ways by finding the midpoint of a side other than the hypotenuse, like this:

Right-triangle (distorted) #1

Distorted tright #2

Distorted tright #3

Distorted tright #4

Distorted tright #5

Distorted tright #6

Distorted tright #7

Distorted tright #8

Distorted tright #9

Distorted tright #10

Distorted tright #11

Distorted tright #12

Distorted tright #13

Distorted tright (animated)
Here’s a different right-triangle. When you divide it regularly, it looks like this:

Right-triangle rep-3 stage 1

Rep-3 Tright #2

3-Tright #3

3-Tright #4

3-Tright #5

3-Tright #6

3-Tright #7

3-Tright #8

3-Tright #9

3-Tright (one colour)
When you distort the divisions, you can create interesting fractals (click on images for larger versions):

Distorted 3-Tright

Distorted 3-Tright

Distorted 3-Tright

Distorted 3-Tright

Distorted 3-Tright

Distorted 3-Tright

Distorted 3-Tright (animated)
And when four of the distorted right-triangles (rep-2 or rep-3) are joined in a diamond, you can create shapes like these:

Creating a diamond #1

Creating a diamond #2

Creating a diamond #3

Creating a diamond #4

Creating a diamond (animated)

Rep-3 right-triangle diamond (divided)

Rep-3 right-triangle diamond (single colour)

Distorted rep-3 right-triangle diamond

Distorted 3-tright diamond

Distorted 3-tright diamond

Distorted 3-tright diamond

Distorted 3-tright diamond

Distorted 3-tright diamond

Distorted 3-tright diamond

Distorted 3-tright diamond

Distorted 3-tright diamond

Distorted 3-tright diamond

Distorted 3-tright diamond

Distorted 3-tright diamond (animated)

Distorted rep-2 right-triangle

Distorted 2-tright diamond

Distorted 2-tright diamond

Distorted 2-tright diamond

Distorted 2-tright diamond

Distorted 2-tright diamond (animated)