Sortieren mit <stack>



  • hallo,
    ich bastel zzt an einem kleinen algor. mit dem man zahlen sortieren kann,.
    dazu verwende ich <stack>, nur leider bekomme ich das programm einfach nicht richtig zum laufen, vielleicht sieht ja jmnd das problem:

    #include <stack>
    #include <iostream>
    #include <conio.h>
    using namespace std;
    
    void stackAusgabe (stack<int> ausgabe)
    {
    	while(ausgabe.size() != 0)
    	{
    		cout << ausgabe.top() << endl;
    		ausgabe.pop();
    	}
    }
    
    int main()
    {
    stack<int> grund;
    stack<int> klein;
    stack<int> gross;
    int vergleich1 = 0;
    int vergleich2 = 0;
    
    int a[13] = {2,5,7,9,1,4,8,22,12,10,33,15};
    for (int x = 0; x < 13; x++)
    {
    	grund.push(a[x]);  
    
    	//Debugger Infos:
    	// a[x] = 2  
    	//x = 0 
    	//grund/c/map/0xcdcdcdcd/CXX0030: Error: expression cannot be evaluated
    
    }
    
    int size = grund.size(); // size == -858..bla...
    cout << size << endl;
    
    while(gross.size() != size)
    { 
    
    	if(vergleich1 == 0 && vergleich2 == 0)
    	{
    	vergleich1 = grund.top();
    	grund.pop();
    	vergleich2 = grund.top();
    	grund.pop();
    	}
    
    	if(vergleich1 < vergleich2)
    	{
    	  klein.push(vergleich1);
    	  vergleich1 = grund.top();
    	  grund.pop();
    	}
    
    	if(vergleich2 < vergleich1)
    	{
    	  klein.push(vergleich2);
    	  vergleich2 = grund.top();
    	  grund.pop();
    	}
    
    	if(grund.empty() && vergleich1 > vergleich2)
    	{
    		gross.push(vergleich1);
    	}
    
    	if(!grund.empty() && vergleich2 > vergleich1)
    	{
    		gross.push(vergleich2);
    	}
    
    	if(grund.empty())
    	{
    		while(!klein.empty())
    		{
    		  grund.push(klein.top());
    		  klein.pop();
    		}
    
    		vergleich1 = 0;
    		vergleich2 = 0;
    	}
    }    
    
    stackAusgabe(gross);
    
    getch();
    return 0;
    }
    

    //edit: an einer stelle hab ich debugger infos dazu geschrieben, damit man evtl leichter verstehen kann wo das problem liegt, mir hats bisher nicht geholfen. 😕

    //edit: http://rafb.net/paste/results/5rdRhF94.html da ist nochmal der code auf rafb.net ,. farblich untermalt lässte er sich evtl leichter lesen. :}

    blesS



  • Hallo,

    darf man fragen, warum du einen std::stack sortieren möchtest? Diese Datenstruktur ist nicht dafür gedacht, sortiert zu werden.

    MfG

    GPC



  • //edit: http://rafb.net/paste/results/5rdRhF94.html da ist nochmal der code auf rafb.net ,. farblich untermalt lässte er sich evtl leichter lesen. :}

    Der Code ist besser zu lesen, wenn du cpp tags verwendest.


Anmelden zum Antworten