flowchart TD
A0[数据结构与算法]
%% 第一层:基础数据结构
A0 --> A1[数组]
A0 --> A2[链表]
%% 数组分支
A1 --> A1_1[数组操作]
A1_1 --> A1_1a[前缀和]
A1_1 --> A1_1b[差分数组]
A1_1 --> A1_1c[二维数组]
A1_1 --> A1_2[双指针技巧]
A1_2 --> A1_2a[数组双指针]
A1_2 --> A1_2b[滑动窗口]
A1_2 --> A1_2c[二分搜索]
A1_2 --> A1_2d[随机算法]
%% 链表分支
A2 --> A2_1[链表双指针]
A2 --> A2_2[基础数据结构]
A2_2 --> A2_2a[循环数组]
A2_2 --> A2_2b[栈与队列]
A2_2 --> A2_2c[哈希]
A2_2 --> A2_2d[设计]
A2_1 --> A2_3[递归]
A2_3 --> A2_4[二叉树]
%% 二叉树分支
A2_4 --> A2_4a[递归遍历]
A2_4 --> A2_4b[层序遍历]
A2_4 --> A2_4c[高级数据结构]
%% 高级数据结构
A2_4c --> A2_4c1[二叉搜索树]
A2_4c --> A2_4c2[堆]
A2_4c --> A2_4c3[字典树]
A2_4c --> A2_4c4[图]
%% 遍历视角
A2_4a --> A3_1[遍历视角]
A3_1 --> A3_1a[回溯算法]
A3_1 --> A3_1b[深度优先搜索]
%% 子问题视角
A2_4a --> A3_2[子问题视角]
A3_2 --> A3_2a[分治算法]
A3_2 --> A3_2b[动态规划]
%% 广度优先搜索分支
A2_4b --> A3_3[广度优先搜索]
A3_3 --> A3_3a[最短路径]
%% 其他算法
A1_2 --> A4[其他算法]
A4 --> A4a[数学]
A4 --> A4b[贪心算法]
%% 样式分类
classDef green fill:#9ae6b4,stroke:#38a169,stroke-width:2px
classDef yellow fill:#faf089,stroke:#d69e2e,stroke-width:2px
classDef red fill:#feb2b2,stroke:#e53e3e,stroke-width:2px
class A0,A1,A2,A1_1a,A1_1b,A1_1c,A1_2a,A2_1,A2_2a,A2_2b green
class A2_3,A2_4,A1_2b,A1_2c,A1_2d,A2_2c,A2_2d,A2_4c1,A2_4c2,A2_4c3,A4a,A4b yellow
class A2_4a,A2_4b,A3_1a,A3_1b,A3_2a,A3_2b,A3_3,A3_3a,A2_4c4 red