diff options
author | Jonas <Jonas@Jonas-PC> | 2017-02-10 16:12:14 +0100 |
---|---|---|
committer | Jonas <Jonas@Jonas-PC> | 2017-02-10 16:12:14 +0100 |
commit | abf3c335dbd3f1d33a3555b29cad5617a7cd6562 (patch) | |
tree | 6f8a666996d26b455f93dd1d219da1cd9f120189 | |
parent | 5a7123dc2cd2991655e4a0efc3c20640fd281242 (diff) | |
download | tree-abf3c335dbd3f1d33a3555b29cad5617a7cd6562.tar.gz |
Added explaining comments to code
-rw-r--r-- | tree/.cproject | 23 | ||||
-rw-r--r-- | tree/.settings/language.settings.xml | 4 | ||||
-rw-r--r-- | tree/.settings/org.eclipse.cdt.managedbuilder.core.prefs | 13 | ||||
-rw-r--r-- | tree/src/cNode.cpp | 7 | ||||
-rw-r--r-- | tree/src/cNode.h | 8 | ||||
-rw-r--r-- | tree/src/cTree.cpp | 22 | ||||
-rw-r--r-- | tree/src/cTree.h | 10 | ||||
-rw-r--r-- | tree/src/main.cpp | 18 |
8 files changed, 73 insertions, 32 deletions
diff --git a/tree/.cproject b/tree/.cproject index af2dc9d..6aa220f 100644 --- a/tree/.cproject +++ b/tree/.cproject @@ -7,26 +7,24 @@ <extensions> <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/> <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> </extensions> </storageModule> <storageModule moduleId="cdtBuildSystem" version="4.0.0"> <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cross.exe.debug.992883527" name="Debug" parent="cdt.managedbuild.config.gnu.cross.exe.debug"> <folderInfo id="cdt.managedbuild.config.gnu.cross.exe.debug.992883527." name="/" resourcePath=""> - <toolChain id="cdt.managedbuild.toolchain.gnu.cross.exe.debug.1750761033" name="Cross GCC" superClass="cdt.managedbuild.toolchain.gnu.cross.exe.debug"> + <toolChain id="cdt.managedbuild.toolchain.gnu.cross.exe.debug.1750761033" name="Cross GCC" nonInternalBuilderId="cdt.managedbuild.builder.gnu.cross" superClass="cdt.managedbuild.toolchain.gnu.cross.exe.debug"> <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.targetPlatform.gnu.cross.1864634322" isAbstract="false" osList="all" superClass="cdt.managedbuild.targetPlatform.gnu.cross"/> - <builder buildPath="${workspace_loc:/tree}/Debug" id="cdt.managedbuild.builder.gnu.cross.1349048457" managedBuildOn="true" name="Gnu Make Builder.Debug" superClass="cdt.managedbuild.builder.gnu.cross"/> + <builder autoBuildTarget="all" buildPath="${workspace_loc:/tree}/Debug" cleanBuildTarget="clean" id="org.eclipse.cdt.build.core.internal.builder.861651851" incrementalBuildTarget="all" managedBuildOn="true" name="CDT Internal Builder" superClass="org.eclipse.cdt.build.core.internal.builder"/> <tool id="cdt.managedbuild.tool.gnu.cross.c.compiler.1925147654" name="Cross GCC Compiler" superClass="cdt.managedbuild.tool.gnu.cross.c.compiler"> - <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.1319784671" superClass="gnu.c.compiler.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/> - <option id="gnu.c.compiler.option.debugging.level.649809700" superClass="gnu.c.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.max" valueType="enumerated"/> + <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.1319784671" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/> + <option id="gnu.c.compiler.option.debugging.level.649809700" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.max" valueType="enumerated"/> <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.382352829" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/> </tool> <tool id="cdt.managedbuild.tool.gnu.cross.cpp.compiler.378734056" name="Cross G++ Compiler" superClass="cdt.managedbuild.tool.gnu.cross.cpp.compiler"> - <option id="gnu.cpp.compiler.option.optimization.level.1373181722" superClass="gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/> - <option id="gnu.cpp.compiler.option.debugging.level.1527262653" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/> + <option id="gnu.cpp.compiler.option.optimization.level.1373181722" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/> + <option id="gnu.cpp.compiler.option.debugging.level.1527262653" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/> <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1867538012" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/> </tool> <tool id="cdt.managedbuild.tool.gnu.cross.c.linker.1293762997" name="Cross GCC Linker" superClass="cdt.managedbuild.tool.gnu.cross.c.linker"/> @@ -111,4 +109,13 @@ </scannerConfigBuildInfo> </storageModule> <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/> + <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/> + <storageModule moduleId="refreshScope" versionNumber="2"> + <configuration configurationName="Debug"> + <resource resourceType="PROJECT" workspacePath="/tree"/> + </configuration> + <configuration configurationName="Release"> + <resource resourceType="PROJECT" workspacePath="/tree"/> + </configuration> + </storageModule> </cproject> diff --git a/tree/.settings/language.settings.xml b/tree/.settings/language.settings.xml index 0d521f3..16f6114 100644 --- a/tree/.settings/language.settings.xml +++ b/tree/.settings/language.settings.xml @@ -5,7 +5,7 @@ <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> <provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> - <provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="903827296288134848" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> + <provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="-101796686550714506" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> <language-scope id="org.eclipse.cdt.core.gcc"/> <language-scope id="org.eclipse.cdt.core.g++"/> </provider> @@ -16,7 +16,7 @@ <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> <provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> - <provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="903827296288134848" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> + <provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="-101796686550714506" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> <language-scope id="org.eclipse.cdt.core.gcc"/> <language-scope id="org.eclipse.cdt.core.g++"/> </provider> diff --git a/tree/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/tree/.settings/org.eclipse.cdt.managedbuilder.core.prefs new file mode 100644 index 0000000..6ed241d --- /dev/null +++ b/tree/.settings/org.eclipse.cdt.managedbuilder.core.prefs @@ -0,0 +1,13 @@ +eclipse.preferences.version=1
+environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.cross.exe.debug.992883527/CPATH/delimiter=;
+environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.cross.exe.debug.992883527/CPATH/operation=remove
+environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.cross.exe.debug.992883527/CPLUS_INCLUDE_PATH/delimiter=;
+environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.cross.exe.debug.992883527/CPLUS_INCLUDE_PATH/operation=remove
+environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.cross.exe.debug.992883527/C_INCLUDE_PATH/delimiter=;
+environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.cross.exe.debug.992883527/C_INCLUDE_PATH/operation=remove
+environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.cross.exe.debug.992883527/append=true
+environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.cross.exe.debug.992883527/appendContributed=true
+environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.cross.exe.debug.992883527/LIBRARY_PATH/delimiter=;
+environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.cross.exe.debug.992883527/LIBRARY_PATH/operation=remove
+environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.cross.exe.debug.992883527/append=true
+environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.cross.exe.debug.992883527/appendContributed=true
diff --git a/tree/src/cNode.cpp b/tree/src/cNode.cpp index ae012cf..3213fda 100644 --- a/tree/src/cNode.cpp +++ b/tree/src/cNode.cpp @@ -36,6 +36,7 @@ void cDatanode::insert(cData* _data, cNode** _me) { if (*_data > *data) nextBigger->insert(_data, &nextBigger); + //TODO Add equals check to prevent double insertion! else nextSmaller->insert(_data, &nextSmaller); }//insert @@ -44,9 +45,10 @@ void cDatanode::remove(cData* _data, list<cData>* _list, cNode** _me) { if(*_data == *data) { + //save subtree inorder before deleting nextSmaller->getSortet(_list); nextBigger->getSortet(_list); - *_me = new cEndnode(); + *_me = new cEndnode(); //set pointer to this in parent to new cEndnode delete this; } else if (*_data > *data) @@ -105,7 +107,6 @@ unsigned int cDatanode::getSubtreeSize() cEndnode::cEndnode() {} cEndnode::~cEndnode() {} - cData cEndnode::getDataObject() { return (cData)NULL; @@ -137,7 +138,7 @@ void cEndnode::draw(int _depth) for (int i = 0; i <= _depth; i++) cout << " "; - cout << "|-$\n"; + cout << "|::\n"; } unsigned int cEndnode::getSubtreeSize() diff --git a/tree/src/cNode.h b/tree/src/cNode.h index 97b6c81..deaffa8 100644 --- a/tree/src/cNode.h +++ b/tree/src/cNode.h @@ -30,7 +30,7 @@ public: */ virtual void remove(cData*, list<cData>*, cNode**) = 0; /* - * Removes *cData from tree + * Removes *cData from tree. Its subtree is stored in list<cData>*. cNode** refers to pointer to pointer to self to be able to change reference */ virtual cData* search(string) = 0; /* @@ -42,14 +42,16 @@ public: */ virtual unsigned int getSubtreeSize() = 0; /* - * returns size of tree under node + * returns size of subtree */ virtual unsigned int getDepth(unsigned int) = 0; /* * returns maximum depth under node */ - virtual void draw(int _depth) = 0; + /* + * + */ }; class cDatanode:public cNode diff --git a/tree/src/cTree.cpp b/tree/src/cTree.cpp index 9f39f79..0538872 100644 --- a/tree/src/cTree.cpp +++ b/tree/src/cTree.cpp @@ -59,42 +59,44 @@ void cTree::clear() void cTree::insertList(list<cData>* _list) { - unsigned int oldSize= _list->size(); + unsigned int oldSize = _list->size(); //used bc size of list changes during for loop list<cData> tmpList; - if (oldSize <= 0) + if (oldSize <= 0) //Nothing to do if list is empty return; - for (unsigned int i = 0; i < oldSize / 2; i++) + for (unsigned int i = 0; i < oldSize / 2; i++) //copy first half of list into tmpList, deleting in _list { tmpList.push_back(_list->front()); _list->pop_front(); } - insert(_list->front().clone()); + insert(_list->front().clone()); //middle element of _list is inserted as new root of subtree _list->pop_front(); - insertList(&tmpList); + + insertList(&tmpList); //Insert first half(smaller value) of list below new root tmpList.clear(); - if(_list->size() <= 0) + if(_list->size() <= 0) //Nothing to do if list is empty return; + //TODO Redundant! For loop not needed! oldSize = _list->size(); for (unsigned int i = 0; i < oldSize; i++) { tmpList.push_back(_list->front()); _list->pop_front(); } - insertList(&tmpList); + insertList(&tmpList); //Insert second half(bigger value) of list below new root } void cTree::sort() { list<cData> sortetList; - root->getSortet(&sortetList); - clear(); - insertList(&sortetList); + root->getSortet(&sortetList); //get inorder + clear(); //clear tree + insertList(&sortetList); //re insert inorderlist } unsigned int cTree::size() diff --git a/tree/src/cTree.h b/tree/src/cTree.h index bb342a2..514478c 100644 --- a/tree/src/cTree.h +++ b/tree/src/cTree.h @@ -57,13 +57,17 @@ public: */ unsigned int gradeOfUnbalance(); /* - * returns number from 0 - 10 - * 0: Balanced - * 10: most unbalanced + * */ cData* search(string); + /* + * returns pointer to matching object + */ void draw(); + /* + * draws subtree in ASCII + */ private: diff --git a/tree/src/main.cpp b/tree/src/main.cpp index 5ee6501..6e990c3 100644 --- a/tree/src/main.cpp +++ b/tree/src/main.cpp @@ -5,14 +5,15 @@ * Author: jonas */ #include <iostream> - #include "cTree.h" +using namespace std; + int main (void) { cTree* a = new cTree(); - for (char i = '1'; i <= 'z'; i ++) + /*for (char i = ' '; i <= '~'; i ++) { string s(&i); a->insert(&s[0]); @@ -25,7 +26,18 @@ int main (void) a->sort(); a->draw(); cout << a->size() << "/" << a->depth() << endl; - cout << a->gradeOfUnbalance() << endl; + cout << a->gradeOfUnbalance() << endl;*/ + + while(1) + { + for (char i = ' '; i <= '~'; i ++) + { + string s(&i); + a->insert(&s[0]); + } + a->sort(); + a->clear(); + } delete a; |