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.