fork download
  1. #include<iostream>
  2. using namespace std;
  3. const int sizee=7;
  4.  
  5. class list{
  6. int l[sizee];
  7. int length =0;
  8.  
  9.  
  10. public :
  11. list();
  12. bool is_full();
  13. void print();
  14. void add_end(int el);
  15. void delete_end();
  16. int top();
  17. bool empty();
  18.  
  19.  
  20.  
  21. };
  22.  
  23. void sort(list org , list& tmp){
  24.  
  25. while(1){
  26. int topOfOrg = org.top();
  27.  
  28. if(tmp.empty()){
  29. tmp.add_end(topOfOrg);
  30. org.delete_end();
  31. }
  32. else {
  33. if(tmp.top() >= topOfOrg){
  34. tmp.add_end(topOfOrg);
  35. org.delete_end();
  36. }
  37. else {
  38. org.delete_end();
  39. while(!tmp.empty() && tmp.top() < topOfOrg){
  40. org.add_end(tmp.top());
  41. tmp.delete_end();
  42. }
  43. tmp.add_end(topOfOrg);
  44. }
  45. }
  46. if(org.empty())break;
  47. }
  48.  
  49.  
  50.  
  51. }
  52.  
  53.  
  54.  
  55.  
  56. int list::top(){
  57. return this->l[length-1];
  58. }
  59. bool list::empty(){
  60. return length==0;
  61.  
  62. }
  63. void list::delete_end(){
  64. length--;
  65. }
  66.  
  67. void list::add_end(int el){
  68. l[length] = el;
  69. length++;
  70.  
  71.  
  72. }
  73.  
  74. list::list(){
  75. length = 0;
  76. }
  77.  
  78. bool list::is_full(){
  79. return length==sizee;
  80. }
  81.  
  82. void list::print(){
  83. for(int i =0;i<length;i++)cout<<l[i]<<" ";
  84. cout<<endl;
  85. }
  86.  
  87.  
  88.  
  89. int main() {
  90. list ls;
  91. ls.add_end(1);
  92. ls.add_end(2);
  93. ls.add_end(5);
  94. ls.add_end(6);
  95. ls.add_end(3);
  96. ls.add_end(4);
  97. ls.add_end(7);
  98.  
  99. list tmp;
  100.  
  101. sort(ls ,tmp);
  102. tmp.print();
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110. return 0;
  111. }
Success #stdin #stdout 0s 5308KB
stdin
Standard input is empty
stdout
7 6 5 4 3 2 1