diff options
Diffstat (limited to 'Bachelor/Prog2/Prakt4/aufg1')
| -rw-r--r-- | Bachelor/Prog2/Prakt4/aufg1/.cdtbuild | 25 | ||||
| -rw-r--r-- | Bachelor/Prog2/Prakt4/aufg1/.cdtproject | 18 | ||||
| -rw-r--r-- | Bachelor/Prog2/Prakt4/aufg1/.project | 19 | ||||
| -rw-r--r-- | Bachelor/Prog2/Prakt4/aufg1/Debug/aufg1 | bin | 0 -> 190158 bytes | |||
| -rw-r--r-- | Bachelor/Prog2/Prakt4/aufg1/Debug/main.d | 10 | ||||
| -rw-r--r-- | Bachelor/Prog2/Prakt4/aufg1/Debug/makefile | 30 | ||||
| -rw-r--r-- | Bachelor/Prog2/Prakt4/aufg1/Debug/objects.mk | 13 | ||||
| -rw-r--r-- | Bachelor/Prog2/Prakt4/aufg1/Debug/sources.mk | 16 | ||||
| -rw-r--r-- | Bachelor/Prog2/Prakt4/aufg1/Debug/subdir.mk | 44 | ||||
| -rw-r--r-- | Bachelor/Prog2/Prakt4/aufg1/Tree.h | 130 | ||||
| -rw-r--r-- | Bachelor/Prog2/Prakt4/aufg1/Treenode.h | 24 | ||||
| -rw-r--r-- | Bachelor/Prog2/Prakt4/aufg1/main.cpp | 47 | ||||
| -rw-r--r-- | Bachelor/Prog2/Prakt4/aufg1/max.txt | 67 |
13 files changed, 443 insertions, 0 deletions
diff --git a/Bachelor/Prog2/Prakt4/aufg1/.cdtbuild b/Bachelor/Prog2/Prakt4/aufg1/.cdtbuild new file mode 100644 index 0000000..8ff663c --- /dev/null +++ b/Bachelor/Prog2/Prakt4/aufg1/.cdtbuild @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?fileVersion 2.1.0?> + +<ManagedProjectBuildInfo> +<project id="aufg1.cdt.managedbuild.target.gnu.exe.1047332323" name="Executable (Gnu)" projectType="cdt.managedbuild.target.gnu.exe"> +<configuration id="cdt.managedbuild.config.gnu.exe.debug.1144338973" name="Debug" parent="cdt.managedbuild.config.gnu.exe.debug" artifactName="aufg1" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser" cleanCommand="rm -rf"> +<toolChain superClass="cdt.managedbuild.toolchain.gnu.exe.debug" id="cdt.managedbuild.toolchain.gnu.exe.debug.1748354600" name="GCC Tool Chain"> +<tool superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.debug" id="cdt.managedbuild.tool.gnu.c.compiler.exe.debug.1284524970" name="GCC C Compiler"/> +<tool superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug" id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.1637240708" name="GCC C++ Compiler"/> +<tool superClass="cdt.managedbuild.tool.gnu.c.linker.exe.debug" id="cdt.managedbuild.tool.gnu.c.linker.exe.debug.1400738080" name="GCC C Linker"/> +<tool superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug" id="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug.1681623910" name="GCC C++ Linker"/> +<tool superClass="cdt.managedbuild.tool.gnu.assembler.exe.debug" id="cdt.managedbuild.tool.gnu.assembler.exe.debug.1655175604" name="GCC Assembler"/> +</toolChain> +</configuration> +<configuration id="cdt.managedbuild.config.gnu.exe.release.381631384" name="Release" parent="cdt.managedbuild.config.gnu.exe.release" artifactName="aufg1" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser" cleanCommand="rm -rf"> +<toolChain superClass="cdt.managedbuild.toolchain.gnu.exe.release" id="cdt.managedbuild.toolchain.gnu.exe.release.1421655405" name="GCC Tool Chain"> +<tool superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.release" id="cdt.managedbuild.tool.gnu.c.compiler.exe.release.642355310" name="GCC C Compiler"/> +<tool superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release" id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.1759654667" name="GCC C++ Compiler"/> +<tool superClass="cdt.managedbuild.tool.gnu.c.linker.exe.release" id="cdt.managedbuild.tool.gnu.c.linker.exe.release.1291460528" name="GCC C Linker"/> +<tool superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.release" id="cdt.managedbuild.tool.gnu.cpp.linker.exe.release.892190043" name="GCC C++ Linker"/> +<tool superClass="cdt.managedbuild.tool.gnu.assembler.exe.release" id="cdt.managedbuild.tool.gnu.assembler.exe.release.1764865877" name="GCC Assembler"/> +</toolChain> +</configuration> +</project> +</ManagedProjectBuildInfo> diff --git a/Bachelor/Prog2/Prakt4/aufg1/.cdtproject b/Bachelor/Prog2/Prakt4/aufg1/.cdtproject new file mode 100644 index 0000000..e36be9f --- /dev/null +++ b/Bachelor/Prog2/Prakt4/aufg1/.cdtproject @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse-cdt version="2.0"?> + +<cdtproject id="org.eclipse.cdt.managedbuilder.core.managedMake"> +<extension point="org.eclipse.cdt.core.ScannerInfoProvider" id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager"/> +<extension point="org.eclipse.cdt.core.BinaryParser" id="org.eclipse.cdt.core.ELF"/> +<data> +<item id="cdt_indexer"> +<indexEnabled indexValue="true"/> +<indexerProblemsEnabled indexProblemsValue="0"/> +</item> +<item id="org.eclipse.cdt.core.pathentry"> +<pathentry kind="src" path=""/> +<pathentry kind="out" path=""/> +<pathentry kind="con" path="org.eclipse.cdt.managedbuilder.MANAGED_CONTAINER"/> +</item> +</data> +</cdtproject> diff --git a/Bachelor/Prog2/Prakt4/aufg1/.project b/Bachelor/Prog2/Prakt4/aufg1/.project new file mode 100644 index 0000000..37c964a --- /dev/null +++ b/Bachelor/Prog2/Prakt4/aufg1/.project @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>aufg1</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.cdt.core.cnature</nature> + <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> + <nature>org.eclipse.cdt.core.ccnature</nature> + </natures> +</projectDescription> diff --git a/Bachelor/Prog2/Prakt4/aufg1/Debug/aufg1 b/Bachelor/Prog2/Prakt4/aufg1/Debug/aufg1 Binary files differnew file mode 100644 index 0000000..2f2827f --- /dev/null +++ b/Bachelor/Prog2/Prakt4/aufg1/Debug/aufg1 diff --git a/Bachelor/Prog2/Prakt4/aufg1/Debug/main.d b/Bachelor/Prog2/Prakt4/aufg1/Debug/main.d new file mode 100644 index 0000000..820922e --- /dev/null +++ b/Bachelor/Prog2/Prakt4/aufg1/Debug/main.d @@ -0,0 +1,10 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +main.d ./main.o: ../main.cpp ../Tree.h ../Treenode.h + +../Tree.h: + +../Treenode.h: + diff --git a/Bachelor/Prog2/Prakt4/aufg1/Debug/makefile b/Bachelor/Prog2/Prakt4/aufg1/Debug/makefile new file mode 100644 index 0000000..0733bbf --- /dev/null +++ b/Bachelor/Prog2/Prakt4/aufg1/Debug/makefile @@ -0,0 +1,30 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +ROOT := .. + +-include $(ROOT)/makefile.init + +RM := rm -rf + +# All of the sources participating in the build are defined here +-include sources.mk +-include $(SUBDIRS:%=%/subdir.mk) +-include objects.mk +-include $(DEPS) +-include $(ROOT)/makefile.defs + +all: aufg1 + +aufg1: $(OBJS) + @echo 'Building target: $@' + g++ -o $@ $(OBJS) $(USER_OBJS) $(LIBS) + @echo 'Finished building: $@' + +clean: + -$(RM) $(OBJS) $(DEPS) aufg1 + +.PHONY: all clean dependents + +-include $(ROOT)/makefile.targets diff --git a/Bachelor/Prog2/Prakt4/aufg1/Debug/objects.mk b/Bachelor/Prog2/Prakt4/aufg1/Debug/objects.mk new file mode 100644 index 0000000..c83c443 --- /dev/null +++ b/Bachelor/Prog2/Prakt4/aufg1/Debug/objects.mk @@ -0,0 +1,13 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +LIBS := +USER_OBJS := + + +OBJS := \ + $(C_SRCS:$(ROOT)/%.c=%.o) $(C_UPPER_SRCS:$(ROOT)/%.C=%.o) $(CC_SRCS:$(ROOT)/%.cc=%.o) $(CXX_SRCS:$(ROOT)/%.cxx=%.o) $(CPP_SRCS:$(ROOT)/%.cpp=%.o) $(S_SRCS:$(ROOT)/%.s=%.o) $(S_UPPER_SRCS:$(ROOT)/%.S=%.o) + +DEPS := \ + $(C_SRCS:$(ROOT)/%.c=%.d) $(C_UPPER_SRCS:$(ROOT)/%.C=%.d) $(CC_SRCS:$(ROOT)/%.cc=%.d) $(CXX_SRCS:$(ROOT)/%.cxx=%.d) $(CPP_SRCS:$(ROOT)/%.cpp=%.d) $(S_SRCS:$(ROOT)/%.s=%.d) $(S_UPPER_SRCS:$(ROOT)/%.S=%.d)
\ No newline at end of file diff --git a/Bachelor/Prog2/Prakt4/aufg1/Debug/sources.mk b/Bachelor/Prog2/Prakt4/aufg1/Debug/sources.mk new file mode 100644 index 0000000..6c40c81 --- /dev/null +++ b/Bachelor/Prog2/Prakt4/aufg1/Debug/sources.mk @@ -0,0 +1,16 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +C_SRCS := +C_UPPER_SRCS := +CC_SRCS := +CXX_SRCS := +CPP_SRCS := +S_SRCS := +S_UPPER_SRCS := + +# Every subdirectory with source files must be described here +SUBDIRS := \ +. \ + diff --git a/Bachelor/Prog2/Prakt4/aufg1/Debug/subdir.mk b/Bachelor/Prog2/Prakt4/aufg1/Debug/subdir.mk new file mode 100644 index 0000000..2f01c61 --- /dev/null +++ b/Bachelor/Prog2/Prakt4/aufg1/Debug/subdir.mk @@ -0,0 +1,44 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +S_UPPER_SRCS += \ +${addprefix $(ROOT)/, \ +} + +CPP_SRCS += \ +${addprefix $(ROOT)/, \ +main.cpp \ +} + +CC_SRCS += \ +${addprefix $(ROOT)/, \ +} + +C_SRCS += \ +${addprefix $(ROOT)/, \ +} + +C_UPPER_SRCS += \ +${addprefix $(ROOT)/, \ +} + +CXX_SRCS += \ +${addprefix $(ROOT)/, \ +} + +S_SRCS += \ +${addprefix $(ROOT)/, \ +} + +# Each subdirectory must supply rules for building sources it contributes +%.o: $(ROOT)/%.cpp + @echo 'Building file: $<' + @echo g++ -O0 -g3 -Wall -c -fmessage-length=0 -o$@ $< + @g++ -O0 -g3 -Wall -c -fmessage-length=0 -o$@ $< && \ + echo -n $(@:%.o=%.d) $(dir $@) > $(@:%.o=%.d) && \ + g++ -MM -MG -P -w -O0 -g3 -Wall -c -fmessage-length=0 $< >> $(@:%.o=%.d) + @echo 'Finished building: $<' + @echo ' ' + + diff --git a/Bachelor/Prog2/Prakt4/aufg1/Tree.h b/Bachelor/Prog2/Prakt4/aufg1/Tree.h new file mode 100644 index 0000000..bcb154f --- /dev/null +++ b/Bachelor/Prog2/Prakt4/aufg1/Tree.h @@ -0,0 +1,130 @@ +// Fig. 15.16: tree.h
+// Definition of template class Tree
+
+#ifndef TREE_H
+#define TREE_H
+
+#include <iostream>
+using std::cout;
+using std::endl;
+using std::ostream;
+#include <iomanip>
+
+#include <cassert>
+
+#include <fstream>
+using std::ofstream;
+using std::ifstream;
+using std::ios;
+
+#include "Treenode.h"
+
+template< class NODETYPE >
+class Tree {
+public:
+ Tree();
+ void insertNode( const NODETYPE & );
+ void preOrderTraversal() const;
+ void inOrderTraversal() const;
+ void postOrderTraversal() const;
+ int gettreeElementCount();
+private:
+ TreeNode< NODETYPE > *rootPtr;
+ int treeElementCount;
+
+ // utility functions
+ void insertNodeHelper(
+ TreeNode< NODETYPE > **, const NODETYPE & );
+ void preOrderHelper( TreeNode< NODETYPE > * ) const;
+ void inOrderHelper( TreeNode< NODETYPE > * ) const;
+ void postOrderHelper( TreeNode< NODETYPE > * ) const;
+};
+
+template< class NODETYPE >
+Tree< NODETYPE >::Tree() { rootPtr = 0; treeElementCount=0; }
+
+template< class NODETYPE >
+void Tree< NODETYPE >::insertNode( const NODETYPE &value )
+ { insertNodeHelper( &rootPtr, value ); }
+
+// This function receives a pointer to a pointer so the
+// pointer can be modified.
+template< class NODETYPE >
+void Tree< NODETYPE >::insertNodeHelper(
+ TreeNode< NODETYPE > **ptr, const NODETYPE &value )
+{
+ if ( *ptr == 0 ) { // tree is empty
+ *ptr = new TreeNode< NODETYPE >( value );
+ (*ptr)->frequency++;
+ ++treeElementCount;
+ assert( *ptr != 0 );
+ }
+ else // tree is not empty
+ if ( value < ( *ptr )->data )
+ insertNodeHelper( &( ( *ptr )->leftPtr ), value );
+ else
+ if ( value > ( *ptr )->data )
+ insertNodeHelper( &( ( *ptr )->rightPtr ), value );
+ else
+ (*ptr)->frequency++;
+}
+
+template< class NODETYPE >
+void Tree< NODETYPE >::preOrderTraversal() const
+ { preOrderHelper( rootPtr ); }
+
+template< class NODETYPE >
+void Tree< NODETYPE >::preOrderHelper(
+ TreeNode< NODETYPE > *ptr ) const
+{
+ if ( ptr != 0 ) {
+ cout << ptr->data << ' ';
+ preOrderHelper( ptr->leftPtr );
+ preOrderHelper( ptr->rightPtr );
+ }
+}
+
+template< class NODETYPE >
+void Tree< NODETYPE >::inOrderTraversal() const
+ { inOrderHelper( rootPtr ); }
+
+template< class NODETYPE >
+void Tree< NODETYPE >::inOrderHelper(
+ TreeNode< NODETYPE > *ptr ) const
+{
+ ofstream outFile("output.txt",ios::app);
+ if( !outFile ) {
+ cerr << "Output-Datei konnte nicht geoeffnet werden." << endl;
+ exit( 1 );
+ }
+ if ( ptr != 0 ) {
+ inOrderHelper( ptr->leftPtr );
+ outFile << std::setw(30) << std::left << std::setfill('.') << ptr->data
+ << ptr->frequency << endl;
+ inOrderHelper( ptr->rightPtr );
+ }
+ outFile.close();
+}
+
+template< class NODETYPE >
+void Tree< NODETYPE >::postOrderTraversal() const
+ { postOrderHelper( rootPtr ); }
+
+template< class NODETYPE >
+void Tree< NODETYPE >::postOrderHelper(
+ TreeNode< NODETYPE > *ptr ) const
+{
+ if ( ptr != 0 ) {
+ postOrderHelper( ptr->leftPtr );
+ postOrderHelper( ptr->rightPtr );
+ cout << ptr->data << ' ';
+ }
+}
+
+template <class NODETYPE>
+int Tree<NODETYPE>::gettreeElementCount()
+{
+ return treeElementCount;
+}
+
+#endif
diff --git a/Bachelor/Prog2/Prakt4/aufg1/Treenode.h b/Bachelor/Prog2/Prakt4/aufg1/Treenode.h new file mode 100644 index 0000000..027ad0e --- /dev/null +++ b/Bachelor/Prog2/Prakt4/aufg1/Treenode.h @@ -0,0 +1,24 @@ +// Fig. 15.16: treenode.h
+// Definition of class TreeNode
+
+#ifndef TREENODE_H
+#define TREENODE_H
+
+template< class NODETYPE > class Tree; // forward declaration
+
+template< class NODETYPE >
+class TreeNode {
+ friend class Tree< NODETYPE >;
+public:
+ TreeNode( const NODETYPE &d )
+ : leftPtr( 0 ), data( d ), rightPtr( 0 ) { }
+ NODETYPE getData() const { return data; }
+ int getFreq() const { return frequency; }
+private:
+ TreeNode< NODETYPE > *leftPtr; // pointer to left subtree
+ NODETYPE data;
+ int frequency;
+ TreeNode< NODETYPE > *rightPtr; // pointer to right subtree
+};
+
+#endif
diff --git a/Bachelor/Prog2/Prakt4/aufg1/main.cpp b/Bachelor/Prog2/Prakt4/aufg1/main.cpp new file mode 100644 index 0000000..79581e3 --- /dev/null +++ b/Bachelor/Prog2/Prakt4/aufg1/main.cpp @@ -0,0 +1,47 @@ +// Tree with string objects +// Author: Sven Eisenhauer +// Date: 05.06.05 + +#include <iostream> +using std::cout; +using std::cerr; +using std::cin; +using std::endl; + +#include <fstream> +using std::ofstream; +using std::ifstream; +using std::ios; + +#include <string> +using std::string; + +#include <cstdlib> +#include <new> + +#include "Tree.h" + +int main() +{ + int wordsInFile=0; + Tree< string > wordTree; + string word; + + ifstream inFile( "max.txt", ios::in ); + + if( !inFile ) { + cerr << "Input-Datei konnte nicht geoeffnet werden." << endl; + exit( 1 ); + } + + while( inFile >> word) { + wordTree.insertNode( *( new string( word ) ) ); + wordsInFile++; + } + + wordTree.inOrderTraversal(); + cout << "Words in input file: "<< wordsInFile << endl; + cout << "Different words: " << wordTree.gettreeElementCount() << endl; + + return 0; +} diff --git a/Bachelor/Prog2/Prakt4/aufg1/max.txt b/Bachelor/Prog2/Prakt4/aufg1/max.txt new file mode 100644 index 0000000..9b1a536 --- /dev/null +++ b/Bachelor/Prog2/Prakt4/aufg1/max.txt @@ -0,0 +1,67 @@ +Maonche held im Stall sisch Hinggel, +fittert se mit Waas un Dinggel +un mit Kleie - dodewäije, +dass se schaeine Aaije laeije. +Sundaogs hot me daonn im Dippche, +alsemol e Hinggelsippche, +un die Färren, zaart un foi, +stobbt me in die Pilwe noi, +daonn im Winde leit me haolt +liewe waarm im Bett wie kaolt +Sou waar sellemols des aa +bei dem Bolde soine Fraa: +Hinggel hatt se Sticke drei +un en Gickel noch debei. +Säigt de Max zum Moritz kaolt: +"Kumm, mer äijen jetz die Aolt!" - +-Hordisch nemme se e Broud, +schneires mirrem Messe noud +in vier Sticke, gaar nit grouß, +wie en klaone Finge blouß. + +Jede Mumbel werd vun unne +iwwes Kreiz daonn feschdgebunne, +un die läije se genaa +in de Houf vun sellre Fraa. - +Wie de Giggel guckt do druff, +sperrt e glei de Schnawwel uff, +kreeht un kreischt gickerigie, +un die Hinggel renne hie. + +Jede schlickt soin Brogge nunne- +äwwe daon, das is kao Wunne, +henggt des ao aom aonnen drou +un fengt glei ze ziehe ou. + +Riwwe, niwwe, hie un her +renne se die Kreiz un Quer, +gacken, fladden in die Häih - +äwwe lous kimmt kaone mäih! + +Aome laonge derre Ascht +hengge se, verstrumbt schun fascht; +mirrem Hals sou laong wie Mosse +misse se eer Läwe losse. +E letscht Aig noch - des is alles, +un daonn häwwe se de Dalles! + +De aold Bolden in de Stobb +häijet waos un häibt de Kobb. +Un schun sterzt se aus de Kaomme - +ach, waos is des fer en Jaomme! + + +"Ich arrm Witfraa bin geschlaoe - +issch kaonn´s jao kaom Mensche saoe! +Drowwe uffm Ebbelboam +henggt moin alleschäinschte Draom!" +Gaons vesteert un halwe kraonk +helt se´s Messe aus em Schaonk +schneid die Hinggel aob vum Ascht +groint sisch aus die Aache fascht, +dabbt ins Haus im diefschte Schmerz, +drickt des Veehzeig aon eer Herz. +Is de erschte Straasch vebei, +kimmt de zwatte siche glei. + +Quelle: Elisabeth Kunz: De Ourewälle Max un Moritz Odenwald-Verlag 2. Auflage 1996
\ No newline at end of file |
