From a59c0da849ef59ed547e476b2c229fa136b72938 Mon Sep 17 00:00:00 2001 From: linyongji Date: Mon, 18 Jan 2021 19:01:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E6=94=AF10=E5=AE=8C=E6=88=90=EF=BC=8C?= =?UTF-8?q?=E5=81=9A=E4=BA=86=E5=8D=95=E5=85=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + Alogrithm/.vs/Alogrithm/v16/.suo | Bin 92672 -> 92672 bytes .../Alogrithm/config/10_BinaryTreePaths.ini | 19 +++++++++++ .../Alogrithm/include/10_BinaryTreePaths.h | 7 ++-- .../Alogrithm/src/10_BinaryTreePaths.cpp | 17 ---------- Alogrithm/Alogrithm/src/main.cpp | 25 -------------- Alogrithm/UnitTest/UnitTest.cpp | 32 ++++++++++++++++++ Alogrithm/UnitTest/UnitTest.vcxproj | 2 +- Alogrithm/UnitTest/pch.h | 1 + 9 files changed, 57 insertions(+), 47 deletions(-) diff --git a/.gitignore b/.gitignore index afc2ddc..c56b2e4 100644 --- a/.gitignore +++ b/.gitignore @@ -117,3 +117,4 @@ Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/d00489e06883ba57/9_ ADDBINARY.ipch Alogrithm/TestResults/dc42f77d-a2f7-41a9-8b8c-1ee3f1a82eb9/鏋梍MI-1 2021-01-18 14_12_23.coverage Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/86fa7a487ad3f37c/10_BINARYTREEPATHS.ipch Alogrithm/Alogrithm/Debug/10_BinaryTreePaths.obj +Alogrithm/.vs/Alogrithm/v16/TestStore/3/003.testlog diff --git a/Alogrithm/.vs/Alogrithm/v16/.suo b/Alogrithm/.vs/Alogrithm/v16/.suo index e2c7770e1d492271c8b5a0064b7364cbf0077609..1a5ce3c58ba97b34e9ce1ecf873c0a60372719fb 100644 GIT binary patch delta 7528 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 delta 7463 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 diff --git a/Alogrithm/Alogrithm/config/10_BinaryTreePaths.ini b/Alogrithm/Alogrithm/config/10_BinaryTreePaths.ini index e69de29..af8644e 100644 --- a/Alogrithm/Alogrithm/config/10_BinaryTreePaths.ini +++ b/Alogrithm/Alogrithm/config/10_BinaryTreePaths.ini @@ -0,0 +1,19 @@ +[Test1] +Input=1,2,3,NULL,5 +Output=1->2->5,1->3 +[Test2] +Input=1,2,3,NULL,4,5 +Output=1->2->4,1->3->5 +[Test3] +input=1,0,0,2,NULL,NULL,0 +output=1->0->2,1->0->0 +[Test4] +input= +output= +[Test5] +input=4,3,1,NULL,2,6,8 +output=4->3->2,4->1->6,4->1->8 +[Test6] +input=1,3,5,7,NULL,2,9,NULL,2 +output=1->3->7->2,1->5->2,1->5->9 + diff --git a/Alogrithm/Alogrithm/include/10_BinaryTreePaths.h b/Alogrithm/Alogrithm/include/10_BinaryTreePaths.h index 89f3350..693cf12 100644 --- a/Alogrithm/Alogrithm/include/10_BinaryTreePaths.h +++ b/Alogrithm/Alogrithm/include/10_BinaryTreePaths.h @@ -1,4 +1,5 @@ - +#pragma once +#include struct TreeNode3 { @@ -7,12 +8,10 @@ struct TreeNode3 struct TreeNode3* right; }; -#pragma once -#include + void CreatBitTreeNode3(char str[][50], int return_count, TreeNode3* cur, int curIndex); TreeNode3* CreatBitTree3(char str[][50], int return_count); void get_path(char** array, struct TreeNode3* root, int* returnSize, int* buf, int local); char** binaryTreePaths(struct TreeNode3* root, int* returnSize); void free_tree3(TreeNode3* T); -int str_device2(CString str, char(*return_str)[50]); \ No newline at end of file diff --git a/Alogrithm/Alogrithm/src/10_BinaryTreePaths.cpp b/Alogrithm/Alogrithm/src/10_BinaryTreePaths.cpp index ce1918f..b6a5f01 100644 --- a/Alogrithm/Alogrithm/src/10_BinaryTreePaths.cpp +++ b/Alogrithm/Alogrithm/src/10_BinaryTreePaths.cpp @@ -87,20 +87,3 @@ void free_tree3(TreeNode3* T)// T = NULL; } } -int str_device2(CString str, char(*return_str)[50]) -{ - int value_count = 0; - char* token; //存放被切割后的第一个子串 - char Section_value[500] = { 0 };//存放nums转换成string类型的结果 - memset(Section_value, 0, sizeof(char) * 500); - strcpy(Section_value, str);//将CString类型的字符串转换成char类型,方便后面切割字符串 - //获得切割到的第一个字符串 - token = strtok(Section_value, ","); - /* 继续获取其他的子字符串 */ - while (token != NULL) { - strcpy(return_str[value_count], token); - token = strtok(NULL, ","); - value_count++; //记录存了多少个元素 - } - return value_count; //返回数组首地址 -} \ No newline at end of file diff --git a/Alogrithm/Alogrithm/src/main.cpp b/Alogrithm/Alogrithm/src/main.cpp index fec29a1..1427772 100644 --- a/Alogrithm/Alogrithm/src/main.cpp +++ b/Alogrithm/Alogrithm/src/main.cpp @@ -1,33 +1,8 @@ -#include "../include/10_BinaryTreePaths.h" - int main() { - CString str = "3,9,20,NULL,NULL,15,17"; - CString str1 = "4,3,1,NULL,NULL,2,6,8"; - char return_str[100][50] = { 0 }; - int return_count = str_device2(str, return_str); - TreeNode3* root = CreatBitTree3(return_str, return_count); - int returnSize = 0; - char** returnStr; - char s[1024] = {0}; - char *q = "123"; - char* p = "123"; - returnStr = binaryTreePaths(root, &returnSize); - for (int i = 0; i < returnSize; i++) - { - //sprintf(s, "%s", returnStr[i]); - strcat(s, returnStr[i]); - if (i != (returnSize-1)) - { - s[strlen(s)] = ','; - } - } - printf("%s\n", s); - free_tree3(root); - return 0; } diff --git a/Alogrithm/UnitTest/UnitTest.cpp b/Alogrithm/UnitTest/UnitTest.cpp index aec922b..83c49e0 100644 --- a/Alogrithm/UnitTest/UnitTest.cpp +++ b/Alogrithm/UnitTest/UnitTest.cpp @@ -11,6 +11,7 @@ using namespace Microsoft::VisualStudio::CppUnitTestFramework; #define FileName_7 "../Alogrithm/config/7_MaxDepth.ini" #define FileName_8 "../Alogrithm/config/8_HammingWeight.ini" #define FileName_9 "../Alogrithm/config/9_AddBinary.ini" +#define FileName_10 "../Alogrithm/config/10_BinaryTreePaths.ini" namespace UnitTest @@ -170,4 +171,35 @@ namespace UnitTest } } }; + TEST_CLASS(UnitTest_10) + { + TEST_METHOD(TestMethode1) + { + char Section_Name[100][10] = { 0 }; + int Section_Count = CalcCount(100, Section_Name, FileName_10); + CString Na, nExpect; + for (int i = 0; i < Section_Count; i++) { + GetPrivateProfileString(Section_Name[i], "input", " ", Na.GetBuffer(200), 200, FileName_10); + GetPrivateProfileString(Section_Name[i], "output", " ", nExpect.GetBuffer(500), 500, FileName_10); + char return_str[100][50] = { 0 }; + int return_count = str_device2(Na, return_str); + TreeNode3* root = CreatBitTree3(return_str, return_count); + int returnSize = 0; + char** returnStr=NULL; + returnStr = binaryTreePaths(root, &returnSize); + char nReal[500] = { 0 }; + for (int i = 0; i < returnSize; i++) + { + strcat(nReal, returnStr[i]); + if (i != (returnSize - 1)) + { + nReal[strlen(nReal)] = ','; + } + } + + Assert::AreEqual(nReal,nExpect); + free_tree3(root); + } + } + }; } diff --git a/Alogrithm/UnitTest/UnitTest.vcxproj b/Alogrithm/UnitTest/UnitTest.vcxproj index f96836e..e995603 100644 --- a/Alogrithm/UnitTest/UnitTest.vcxproj +++ b/Alogrithm/UnitTest/UnitTest.vcxproj @@ -103,7 +103,7 @@ Windows $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) DebugFull - ../Alogrithm/Debug/1_ContainsNearbyDuplicate.obj;../Alogrithm/Debug/2_ExcelSheetColumnTitle.obj;../Alogrithm/Debug/3_bool IsUgly.obj;../Alogrithm/Debug/4_IsPalindrome.obj;../Alogrithm/Debug/5_MinDepth.obj;../Alogrithm/Debug/6_ContainsDuplicate.obj;../Alogrithm/Debug/7_MaxDepth.obj;../Alogrithm/Debug/8_HammingWeight.obj;../Alogrithm/Debug/9_AddBinary.obj;%(AdditionalDependencies) + ../Alogrithm/Debug/1_ContainsNearbyDuplicate.obj;../Alogrithm/Debug/2_ExcelSheetColumnTitle.obj;../Alogrithm/Debug/3_bool IsUgly.obj;../Alogrithm/Debug/4_IsPalindrome.obj;../Alogrithm/Debug/5_MinDepth.obj;../Alogrithm/Debug/6_ContainsDuplicate.obj;../Alogrithm/Debug/7_MaxDepth.obj;../Alogrithm/Debug/8_HammingWeight.obj;../Alogrithm/Debug/9_AddBinary.obj;../Alogrithm/Debug/10_BinaryTreePaths.obj;%(AdditionalDependencies) diff --git a/Alogrithm/UnitTest/pch.h b/Alogrithm/UnitTest/pch.h index 52a9d5c..017ccf5 100644 --- a/Alogrithm/UnitTest/pch.h +++ b/Alogrithm/UnitTest/pch.h @@ -22,6 +22,7 @@ #include"../Alogrithm/include/7_MaxDepth.h" #include"../Alogrithm/include/8_HammingWeight.h" #include"../Alogrithm/include/9_AddBinary.h" +#include"../Alogrithm/include/10_BinaryTreePaths.h" int CalcCount(int n, char(*str)[10],const char *FileName);