- 读取源文件,以数组元素存储每一行
- 把行号追加到行内容结尾,使用“分隔符”分隔
- 使子级前面追加父级内容(行开头为空格的就是子级),使用“分隔符”分隔
- 整体排序
- 遍历排序后结果,根据每一行记录的历史行号向源文件数组查找替换本行内容
- 把修改后的内容写入新文件
- 当行开头无空格,清空“前缀数组”
- 当行开头有空格,上一行开头空格数小于自己的,把“上一行内容”追加到“前缀数组”,联合成字符串加在自己内容前面,产生新内容,放进“待排序数组”
- 当行开头有空格,上一行开头空格数等于自己的,保持“前缀数据”元素不变,联合成字符串加在自己内容前面,产生新内容,放进“待排序数组”
- 当行开头有空格,上一行开头空格数大于自己的,把“前缀数组”元素减一,联合成字符串加载自己内容前面,产生新内容,放进“待排序数组”
- 关键字,“前缀数组”,数组类型
- 关键字,“上一行内容”,字符串类型,收尾去除空格