# bugbl3wed/expression-tree-visualizer architecture

> Architecture diagram of the GitHub repository bugbl3wed/expression-tree-visualizer, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/bugbl3wed/expression-tree-visualizer
- Repository: https://github.com/bugbl3wed/expression-tree-visualizer

## Overview

This small C++ demo builds an expression tree from a hard-coded infix expression, prints preorder and postorder traversals, evaluates the tree, and renders it sideways with node values. Evaluation treats each leaf as 1 rather than reading numeric operands. All behavior is in the single sampled source file.

Main entry points: [`expression_tree.cpp`](https://github.com/bugbl3wed/expression-tree-visualizer/blob/master/expression_tree.cpp) (Program entry)

## Diagram (Mermaid)

```mermaid
flowchart TD

node_main["Program entry"]
node_builder["Tree builder"]
node_tree["Expression tree"]
node_traversals["Tree traversals"]
node_evaluator["Tree evaluator"]
node_renderer["Rotated renderer"]
node_stdout(("Standard output"))

node_main -->|"builds via"| node_builder
node_builder -->|"creates nodes"| node_tree
node_main -->|"runs traversals"| node_traversals
node_traversals -->|"prints values"| node_stdout
node_main -->|"evaluates tree"| node_evaluator
node_evaluator -->|"recurses over"| node_evaluator
node_main -->|"renders tree"| node_renderer
node_renderer -->|"evaluates nodes"| node_evaluator
node_renderer -->|"prints layout"| node_stdout

click node_main "https://github.com/bugbl3wed/expression-tree-visualizer/blob/master/expression_tree.cpp"
click node_builder "https://github.com/bugbl3wed/expression-tree-visualizer/blob/master/expression_tree.cpp"
click node_tree "https://github.com/bugbl3wed/expression-tree-visualizer/blob/master/expression_tree.cpp"
click node_traversals "https://github.com/bugbl3wed/expression-tree-visualizer/blob/master/expression_tree.cpp"
click node_evaluator "https://github.com/bugbl3wed/expression-tree-visualizer/blob/master/expression_tree.cpp"
click node_renderer "https://github.com/bugbl3wed/expression-tree-visualizer/blob/master/expression_tree.cpp"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_builder,node_tree,node_traversals,node_evaluator,node_renderer toneTeal
class node_stdout toneIndigo
```

## Components

### Other components

- [Program entry](https://github.com/bugbl3wed/expression-tree-visualizer/blob/master/expression_tree.cpp): `expression_tree.cpp`
- [Tree builder](https://github.com/bugbl3wed/expression-tree-visualizer/blob/master/expression_tree.cpp): `expression_tree.cpp`
- [Expression tree](https://github.com/bugbl3wed/expression-tree-visualizer/blob/master/expression_tree.cpp): `expression_tree.cpp`
- [Tree traversals](https://github.com/bugbl3wed/expression-tree-visualizer/blob/master/expression_tree.cpp): `expression_tree.cpp`
- [Tree evaluator](https://github.com/bugbl3wed/expression-tree-visualizer/blob/master/expression_tree.cpp): `expression_tree.cpp`
- [Rotated renderer](https://github.com/bugbl3wed/expression-tree-visualizer/blob/master/expression_tree.cpp): `expression_tree.cpp`
- **Standard output**

## Connections

- Program entry → Tree builder: builds via
- Tree builder → Expression tree: creates nodes
- Program entry → Tree traversals: runs traversals
- Tree traversals → Standard output: prints values
- Program entry → Tree evaluator: evaluates tree
- Tree evaluator → Tree evaluator: recurses over
- Program entry → Rotated renderer: renders tree
- Rotated renderer → Tree evaluator: evaluates nodes
- Rotated renderer → Standard output: prints layout
