diff --git a/APP_Framework/Applications/app_test/test_rbtree/README.md b/APP_Framework/Applications/app_test/test_rbtree/README.md
index 6d1cfbda2..5d9249c41 100644
--- a/APP_Framework/Applications/app_test/test_rbtree/README.md
+++ b/APP_Framework/Applications/app_test/test_rbtree/README.md
@@ -1,8 +1,8 @@
# 基于cortex-m4-emulator实现红黑树并测试验证
## 1. 简介
-红黑树是一种自平衡的二叉查找树,具有良好的插入、删除和查找性能,本次提交结果为红黑树数据结构的简单实现。test_rbtree.h中定义了红黑树的数据结构和声明插入、删除、查找相关操作函数;test_rbtree.c中为操作函数的定义,并提供了测试函数TestRBTree用于验证红黑树的正确性。
+红黑树是一种自平衡的二叉查找树,具有良好的插入、删除和查找性能.本次提交结果为红黑树数据结构的简单实现。test_rbtree.h中定义了红黑树的数据结构和声明插入、删除、查找相关操作函数。test_rbtree.c中为操作函数的定义,并提供了测试函数TestRBTree用于验证红黑树的正确性。
## 2. 数据结构设计说明
@@ -20,6 +20,10 @@
- root:指向红黑树的根节点的指针
+**createRbtree函数**
+
+该函数用于创建红黑树,返回"红黑树的根"。
+
**destroy_rbtree函数**
该函数用于销毁红黑树释放内存空间
@@ -37,7 +41,7 @@
该函数为.c文件内部的静态函数,用于插入节点后修复红黑树的平衡性。接受一个当前节点指针作为参数,并根据红黑树的性质进行旋转和着色操作,以恢复平衡。
**RBTreeInsert 函数**
-该函数用于向红黑树中插入一个新节点。接受一个新节点指针作为参数,并根据新节点的键值插入到适当的位置,然后调用 InsertFixup 进行修复。
+该函数用于向红黑树中插入一个新节点。接受一个新节点指针作为参数,并根据新节点的键值插入到适当的位置,然后调用 InsertFixup 进行修复。插入成功返回0,失败返回1.
**DeleteFixup 函数**
该函数为.c文件内部的静态函数,用于删除节点后修复红黑树的平衡性。接受一个当前节点指针作为参数,并根据红黑树的性质进行旋转和着色操作,以恢复平衡。
@@ -49,26 +53,66 @@
该函数为.c文件内部的静态函数,用于查找给定节点的后继节点。接受一个当前节点指针作为参数,并在红黑树中找到当前节点的后继节点。
**RBTreeSearch 函数**
-该函数用于在红黑树中查找指定键值的节点。接受一个键值作为参数,并在红黑树中进行查找,返回找到的节点指针。
+该函数用于在红黑树中**递归**查找指定键值的节点。接受一个键值作为参数,并在红黑树中进行查找,返回找到的节点指针。
+
+**printRBTree 函数**
+该函数用于打印红黑树。
+
+**rbtreeMinimum函数**
+
+该函数参数为根节点root和int值val。用于查找以root为根的树的最小结点的值,并将所得值传入val。
+
## 3. 测试程序说明
+
TestRBTree用于验证红黑树的功能和正确性,下面是该程序的使用步骤和说明:
-- 函数中定义一个默认关键字数组,其中包含了20个整数关键字,运行时自动遍历数组构建红黑树,构建完成后中序遍历输出结果,可以根据输出结果验证红黑树的节点顺序以及颜色是否符合预期。
+
+- 函数中定义一个默认关键字数组,其中包含了20个整数关键字,并自动遍历数组构建红黑树,运行时逐个显示每个关键字插入,并在红黑树构建完成后中序遍历输出结果,可以根据输出结果验证红黑树的节点顺序以及颜色是否符合预期。
- 对关键字数组中的每个关键字,在红黑树中进行搜索,并输出找到节点的父节点、左子节点和右子节点的关键字,随后删除该节点。
- 在每次删除操作后,程序会询问是否显示当前的红黑树。如果输入 "Y" 或 "y",将再次进行中序遍历,并输出当前红黑树中的结点,可以根据输出结果查看结点是否符合预期。当树空时结束程序。如果输入 "N" 或 "n",则显示”结束程序“,并不显示删除后的红黑树。若输入其他,则提示输入正确字符并等待读取.
-
## 4. 运行结果(##需结合运行测试截图按步骤说明##)
-根据默认关键字数组构建红黑树
+启动QEMU:
+
+

+
-主机截图无法粘贴至虚拟机,运行结果见实验报告
+输入注册命令:
+
+

+
+ 展现插入整数关键字的过程,并在20个全部插入成功后中序遍历展示红黑树。
-根据键值查找结点,输出相关信息并删除,可以输入'Y'或'y'展示删除后的红黑树
-主机截图无法粘贴至虚拟机,运行结果见实验报告
+逐个查找并删除关键字,删除后提示“是否显示当前红黑树(Y/N)”:
+
+

+
+
+
+输入Y则展示删除后的红黑树的中序遍历结果,并继续下一个关键字的查找删除,并询问是否展示:
+
+

+
+
+
+输入N后不展示中序遍历结果,并继续下一个关键字的查找删除,询问是否展示:
+ 
+
+

+
+
+输入其他字符,显示“请输入正确字符”,并重新等待输入:
+
+

+
+
+反复查找删除,直到所有红黑树都被删除:
+
+

+
+
-到达空树,退出程序
-主机截图无法粘贴至虚拟机,运行结果见实验报告
diff --git a/APP_Framework/Applications/app_test/test_rbtree/img/ask-whether-show.png b/APP_Framework/Applications/app_test/test_rbtree/img/ask-whether-show.png
new file mode 100644
index 000000000..75221942e
Binary files /dev/null and b/APP_Framework/Applications/app_test/test_rbtree/img/ask-whether-show.png differ
diff --git a/APP_Framework/Applications/app_test/test_rbtree/img/finish.png b/APP_Framework/Applications/app_test/test_rbtree/img/finish.png
new file mode 100644
index 000000000..46055595d
Binary files /dev/null and b/APP_Framework/Applications/app_test/test_rbtree/img/finish.png differ
diff --git a/APP_Framework/Applications/app_test/test_rbtree/img/input-N.png b/APP_Framework/Applications/app_test/test_rbtree/img/input-N.png
new file mode 100644
index 000000000..dc9470f5a
Binary files /dev/null and b/APP_Framework/Applications/app_test/test_rbtree/img/input-N.png differ
diff --git a/APP_Framework/Applications/app_test/test_rbtree/img/input-ShellRegisterCommand.png b/APP_Framework/Applications/app_test/test_rbtree/img/input-ShellRegisterCommand.png
new file mode 100644
index 000000000..73b922d10
Binary files /dev/null and b/APP_Framework/Applications/app_test/test_rbtree/img/input-ShellRegisterCommand.png differ
diff --git a/APP_Framework/Applications/app_test/test_rbtree/img/input-Y.png b/APP_Framework/Applications/app_test/test_rbtree/img/input-Y.png
new file mode 100644
index 000000000..0869c426b
Binary files /dev/null and b/APP_Framework/Applications/app_test/test_rbtree/img/input-Y.png differ
diff --git a/APP_Framework/Applications/app_test/test_rbtree/img/input-others.png b/APP_Framework/Applications/app_test/test_rbtree/img/input-others.png
new file mode 100644
index 000000000..43bf7b8e8
Binary files /dev/null and b/APP_Framework/Applications/app_test/test_rbtree/img/input-others.png differ
diff --git a/APP_Framework/Applications/app_test/test_rbtree/img/qemu-startup.png b/APP_Framework/Applications/app_test/test_rbtree/img/qemu-startup.png
new file mode 100644
index 000000000..b01d184b0
Binary files /dev/null and b/APP_Framework/Applications/app_test/test_rbtree/img/qemu-startup.png differ