summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jonas <Jonas@Jonas-PC> 2017-02-10 16:12:14 +0100
committerGravatar Jonas <Jonas@Jonas-PC> 2017-02-10 16:12:14 +0100
commitabf3c335dbd3f1d33a3555b29cad5617a7cd6562 (patch)
tree6f8a666996d26b455f93dd1d219da1cd9f120189
parent5a7123dc2cd2991655e4a0efc3c20640fd281242 (diff)
downloadtree-abf3c335dbd3f1d33a3555b29cad5617a7cd6562.tar.gz
Added explaining comments to code
-rw-r--r--tree/.cproject23
-rw-r--r--tree/.settings/language.settings.xml4
-rw-r--r--tree/.settings/org.eclipse.cdt.managedbuilder.core.prefs13
-rw-r--r--tree/src/cNode.cpp7
-rw-r--r--tree/src/cNode.h8
-rw-r--r--tree/src/cTree.cpp22
-rw-r--r--tree/src/cTree.h10
-rw-r--r--tree/src/main.cpp18
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 &quot;${INPUTS}&quot;" 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 &quot;${INPUTS}&quot;" 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 &quot;${INPUTS}&quot;" 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 &quot;${INPUTS}&quot;" 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;