Weitere Datenstrukturen

23.05.2017 04:31 Uhr

Weitere Datenstrukturen

Stufe 1

	#include 
	using namespace std;
	#include 

	int main(){
		ifstream datei;
		char puffer[101];

		datei.open("koeln.txt");
		if (!datei)
		   {
		   cout << "Die Datei existiert nicht!" << endl;
		   return 0;
		   }

		for (;!datei.eof();)
		    {
		    datei.getline(puffer,100,'\n');
		    cout << puffer << endl;
		    }
	}

 

Stufe 2

	#include 
	using namespace std;
	#include 
	#include 

	int main(){
		ifstream datei1,datei2;
		char puffer[101];
		char **array;
		int zeilen;

		datei1.open("koeln.txt");
		if (!datei1)
		   {
		   cout << "Die Datei existiert nicht!" << endl;
		   return 0;
		   }

		for (zeilen=0;!datei1.eof();zeilen++)
		    datei1.getline(puffer,100,'\n');

		array=new char *[zeilen];

		datei1.close();
		datei2.open("koeln.txt");

		for (int i=0;i<zeilen;i++) { datei2.getline(puffer,100,'\n'); array[i]=new char[strlen(puffer)+1]; strcpy(array[i],puffer); } datei2.close(); for (int i=zeilen-1;i>=0;i--)
		    cout << "Eintrag " << i << " = " << array[i] << endl;
	}

 

Stufe 3

	#include 
	using namespace std;
	#include 
	#include 

	#include "stack3.h"

	int main(){
		ifstream datei;
		char puffer[101];
		char **array;
		int zeilen;
		struct stack *wurzel=NULL;
		struct stack *jetzt;

		datei.open("koeln.txt");
		if (!datei)
		   {
		   cout << "Die Datei existiert nicht!" << endl; return 0; } for (zeilen=0;!datei.eof();zeilen++) { datei.getline(puffer,100,'\n'); jetzt=new struct stack; jetzt->inhalt=new char[strlen(puffer)+1];
		    strcpy(jetzt->inhalt,puffer);
		    jetzt->naechster=wurzel;
		    wurzel=jetzt;
		    }

		array=new char *[zeilen];

		datei.close();

		jetzt=wurzel;
		for (int i=0;i<zeilen;i++) { array[i]=jetzt->inhalt;
		    jetzt=wurzel->naechster;
		    delete wurzel;
		    wurzel=jetzt;
		    }

		for (int i=0;i<zeilen;i++)
		    cout << "Eintrag " << i << " = " << array[i] << endl;
	}

 

Stufe 4

	#include 
	using namespace std;
	#include 
	#include 

	#include "stack4.h"

	int main(){
		ifstream datei;
		char puffer[101];
		char **array;
		int zeilen;
		ClStack *wurzel=NULL;
		ClStack *jetzt;

		datei.open("koeln.txt");
		if (!datei)
		   {
		   cout << "Die Datei existiert nicht!" << endl; return 0; } for (zeilen=0;!datei.eof();zeilen++) { datei.getline(puffer,100,'\n'); jetzt=new ClStack(puffer); jetzt->verbinde(wurzel);
		    wurzel=jetzt;
		    }

		array=new char *[zeilen];

		datei.close();

		jetzt=wurzel;
		for (int i=0;i<zeilen;i++) { array[i]=jetzt->hole();
		    jetzt=wurzel->positioniere();
		    delete wurzel;
		    wurzel=jetzt;
		    }

		for (int i=0;i<zeilen;i++)
		    cout << "Eintrag " << i << " = " << array[i] << endl;
	}	

 

Stufe 5

	#include 
	using namespace std;
	#include 

	#include "stack5.h"

	int main(){
		ifstream datei;
		char puffer[101];
		char **array;
		int zeilen;
		ClStack stack;

		datei.open("koeln.txt");
		if (!datei)
		   {
		   cout << "Die Datei existiert nicht!" << endl;
		   return 0;
		   }

		for (zeilen=0;!datei.eof();zeilen++)
		    {
		    datei.getline(puffer,100,'\n');
		    stack.push(puffer);
		    }

		array=new char *[zeilen];

		datei.close();

		for (i=0;!stack.empty();i++)
		    {
		    array[i]=stack.pop();
		    }

		for (int i=0;i<zeilen;i++)
		    cout << "Eintrag " << i << " = " << array[i] << endl;
	}	

 

Stufe 6

	#include 
	using namespace std;
	#include 

	#include "queue6.h"

	int main(){
		ifstream datei;
		char puffer[101];
		char **array;
		int zeilen;
		ClQueue queue;

		datei.open("koeln.txt");
		if (!datei)
		   {
		   cout << "Die Datei existiert nicht!" << endl;
		   return 0;
		   }

		for (;!datei.eof();)
		    {
		    datei.getline(puffer,100,'\n');
		    queue.push(puffer);
		    }

		zeilen=queue.size();
		array=new char *[zeilen];

		datei.close();

		for (int i=0;!queue.empty();i++)
		    {
		    array[i]=queue.pop();
		    }

		for (int i=0;i<zeilen;i++)
		    cout << "Eintrag " << i << " = " << array[i] << endl;
	}	

 

Stufe 7

	#include 
	using namespace std;
	#include 

	#include 
	#include 

	using namespace std;

	int main(){
		ifstream datei;
		char puffer[101], *kopie;
		char **array;
		int zeilen;
		std::stack stack;

		datei.open("koeln.txt");
		if (!datei)
		   {
		   cout << "Die Datei existiert nicht!" << endl;
		   return 0;
		   }

		for (zeilen=0;!datei.eof();zeilen++)
		    {
		    datei.getline(puffer,100,'\n');
		    kopie=new char[strlen(puffer)+1];
		    strcpy(kopie,puffer);
		    stack.push(kopie);
		    }

		array=new char *[zeilen];

		datei.close();

		for (int i=0;!stack.empty();i++)
		    {
		    array[i]=stack.top();
		    stack.pop();
		    }

		for (int i=0;i<zeilen;i++)
		    cout << "Eintrag " << i << " = " << array[i] << endl;
	}

 

Download: datenstrukturen_examples.zip (ohne example 6)

Download: datenstrukturen_example_6