From 249fb3ca8813915f094fcedd9092b43153a31406 Mon Sep 17 00:00:00 2001 From: linyongji Date: Mon, 18 Jan 2021 16:02:05 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=88=86=E6=94=AF10=20=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + Alogrithm/.vs/Alogrithm/v16/.suo | Bin 111104 -> 92672 bytes Alogrithm/Alogrithm/Alogrithm.vcxproj | 7 +- Alogrithm/Alogrithm/Alogrithm.vcxproj.filters | 9 ++ .../Alogrithm/config/10_BinaryTreePaths.ini | 0 .../Alogrithm/include/10_BinaryTreePaths.h | 18 +++ .../Alogrithm/src/10_BinaryTreePaths.cpp | 106 ++++++++++++++++++ Alogrithm/Alogrithm/src/main.cpp | 33 +++++- 8 files changed, 169 insertions(+), 6 deletions(-) create mode 100644 Alogrithm/Alogrithm/config/10_BinaryTreePaths.ini create mode 100644 Alogrithm/Alogrithm/include/10_BinaryTreePaths.h create mode 100644 Alogrithm/Alogrithm/src/10_BinaryTreePaths.cpp diff --git a/.gitignore b/.gitignore index 04fb84c..afc2ddc 100644 --- a/.gitignore +++ b/.gitignore @@ -115,3 +115,5 @@ Alogrithm/Alogrithm/Debug/9_AddBinary.obj Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/27a527fda8b54c6b/9_ADDBINARY.ipch 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 diff --git a/Alogrithm/.vs/Alogrithm/v16/.suo b/Alogrithm/.vs/Alogrithm/v16/.suo index 9014215ceadb5de13da29a1c0c356a9fe7266c22..e2c7770e1d492271c8b5a0064b7364cbf0077609 100644 GIT binary patch delta 10145 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 Level3 true - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true + WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + false Console @@ -140,6 +140,7 @@ + @@ -152,6 +153,7 @@ + @@ -163,6 +165,7 @@ + diff --git a/Alogrithm/Alogrithm/Alogrithm.vcxproj.filters b/Alogrithm/Alogrithm/Alogrithm.vcxproj.filters index 61f2f35..4857c43 100644 --- a/Alogrithm/Alogrithm/Alogrithm.vcxproj.filters +++ b/Alogrithm/Alogrithm/Alogrithm.vcxproj.filters @@ -54,6 +54,9 @@ 源文件\src + + 源文件\src + @@ -83,6 +86,9 @@ 头文件\include + + 头文件 + @@ -112,5 +118,8 @@ 资源文件\config + + 资源文件\config + \ No newline at end of file diff --git a/Alogrithm/Alogrithm/config/10_BinaryTreePaths.ini b/Alogrithm/Alogrithm/config/10_BinaryTreePaths.ini new file mode 100644 index 0000000..e69de29 diff --git a/Alogrithm/Alogrithm/include/10_BinaryTreePaths.h b/Alogrithm/Alogrithm/include/10_BinaryTreePaths.h new file mode 100644 index 0000000..89f3350 --- /dev/null +++ b/Alogrithm/Alogrithm/include/10_BinaryTreePaths.h @@ -0,0 +1,18 @@ + + +struct TreeNode3 +{ + int val; + struct TreeNode3* left; + 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 new file mode 100644 index 0000000..ce1918f --- /dev/null +++ b/Alogrithm/Alogrithm/src/10_BinaryTreePaths.cpp @@ -0,0 +1,106 @@ +#include "../include/10_BinaryTreePaths.h" + + +void CreatBitTreeNode3(char str[][50], int return_count, TreeNode3* cur, int curIndex) +{ + if (str == NULL || return_count <= 0 || cur == NULL || curIndex >= return_count || curIndex < 0) { + return; + } + int last = return_count - 1; + if ((2 * curIndex + 1 <= last) && strcmp(str[2 * curIndex + 1], "NULL")) { + cur->left = (TreeNode3*)malloc(sizeof(TreeNode3)); + if (NULL == cur->left) { + return; + } + cur->left->val = _ttoi(str[2 * curIndex + 1]); + } + else { + cur->left = NULL; + } + if ((2 * curIndex + 2 <= last) && strcmp(str[2 * curIndex + 2], "NULL")) { + cur->right = (TreeNode3*)malloc(sizeof(TreeNode3)); + if (NULL == cur->right) { + return; + } + cur->right->val = _ttoi(str[2 * curIndex + 2]); + } + else { + cur->right = NULL; + } + CreatBitTreeNode3(str, return_count, cur->left, 2 * curIndex + 1); + CreatBitTreeNode3(str, return_count, cur->right, 2 * curIndex + 2); +} +TreeNode3* CreatBitTree3(char str[][50], int return_count) +{ + if (str == NULL || return_count <= 0) { + return NULL; + } + TreeNode3* head = (TreeNode3*)malloc(sizeof(TreeNode3)); + if (NULL == head) { + return NULL; + } + head->val = _ttoi(str[0]); + CreatBitTreeNode3(str, return_count, head, 0); + return head; +} +void get_path(char** array, struct TreeNode3* root, int* returnSize, int* buf, int local) +{ + if (NULL == root) { + return; + } + if (!root->left && !root->right) { + char* str = (char*)malloc(1024); + int len = 0; + for (int i = 0; i < local; i++) + { + len += sprintf(str + len, "%d->", buf[i]); + } + sprintf(str + len, "%d", root->val); + array[(*returnSize)++] = str; + } + else { + buf[local++] = root->val; + get_path(array, root->left, returnSize, buf, local); + get_path(array, root->right, returnSize, buf, local); + } +} +char** binaryTreePaths(struct TreeNode3* root, int* returnSize) { + char** ret = (char**)malloc(sizeof(char*) * 1024);//һָ룬Ϊֵضάַ + *returnSize = 0;//άַԪظ + int buf[1024] = { 0 };//ջ + get_path(ret, root, returnSize, buf, 0); + return ret; +} +void free_tree3(TreeNode3* T)//ͷ +{ + if (!T) { + return; + } + if (T->left) { + free_tree3(T->left); + } + if (T->right) { + free_tree3(T->right); + } + if (T) { + free(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 7490043..fec29a1 100644 --- a/Alogrithm/Alogrithm/src/main.cpp +++ b/Alogrithm/Alogrithm/src/main.cpp @@ -1,8 +1,33 @@ -#include "../include/2_ExcelSheetColumnTitle.h" -#include "../include/3_bool IsUgly.h" +#include "../include/10_BinaryTreePaths.h" + + + + int main() { - //ExcelSheetColumnTitle(10); - //printf("%d\n", IsUgly(6)); + + 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; } From a59c0da849ef59ed547e476b2c229fa136b72938 Mon Sep 17 00:00:00 2001 From: linyongji Date: Mon, 18 Jan 2021 19:01:53 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=88=86=E6=94=AF10=E5=AE=8C=E6=88=90?= =?UTF-8?q?=EF=BC=8C=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);