summaryrefslogtreecommitdiffstats
path: root/Bachelor/Prog2/Prakt4/aufg1
diff options
context:
space:
mode:
authorSven Eisenhauer <sven@sven-eisenhauer.net>2023-11-10 15:11:48 +0100
committerSven Eisenhauer <sven@sven-eisenhauer.net>2023-11-10 15:11:48 +0100
commit33613a85afc4b1481367fbe92a17ee59c240250b (patch)
tree670b842326116b376b505ec2263878912fca97e2 /Bachelor/Prog2/Prakt4/aufg1
downloadStudium-master.tar.gz
Studium-master.tar.bz2
add new repoHEADmaster
Diffstat (limited to 'Bachelor/Prog2/Prakt4/aufg1')
-rw-r--r--Bachelor/Prog2/Prakt4/aufg1/.cdtbuild25
-rw-r--r--Bachelor/Prog2/Prakt4/aufg1/.cdtproject18
-rw-r--r--Bachelor/Prog2/Prakt4/aufg1/.project19
-rw-r--r--Bachelor/Prog2/Prakt4/aufg1/Debug/aufg1bin0 -> 190158 bytes
-rw-r--r--Bachelor/Prog2/Prakt4/aufg1/Debug/main.d10
-rw-r--r--Bachelor/Prog2/Prakt4/aufg1/Debug/makefile30
-rw-r--r--Bachelor/Prog2/Prakt4/aufg1/Debug/objects.mk13
-rw-r--r--Bachelor/Prog2/Prakt4/aufg1/Debug/sources.mk16
-rw-r--r--Bachelor/Prog2/Prakt4/aufg1/Debug/subdir.mk44
-rw-r--r--Bachelor/Prog2/Prakt4/aufg1/Tree.h130
-rw-r--r--Bachelor/Prog2/Prakt4/aufg1/Treenode.h24
-rw-r--r--Bachelor/Prog2/Prakt4/aufg1/main.cpp47
-rw-r--r--Bachelor/Prog2/Prakt4/aufg1/max.txt67
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
new file mode 100644
index 0000000..2f2827f
--- /dev/null
+++ b/Bachelor/Prog2/Prakt4/aufg1/Debug/aufg1
Binary files differ
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