Cod sursa(job #523332)

Utilizator LgregL Greg Lgreg Data 17 ianuarie 2011 19:42:08
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.22 kb
#include<iostream>
using namespace std;
struct nod
{
    int info;
    nod* urm;
} *L;
void adauga(int x)
{
    nod *a=new nod;
    a->info=x;
    a->urm=L;
    L=a;
}

void adauga2(nod* no1,nod* no2,int x)
{
    nod *a=new nod;
    a->info = x;
    a->urm=no2;
    no1->urm=a;
}
int x,N;
int main()
{

    ifstream fin("algsort.in","r",stdin);
    ofstream fout("algsort.out","w",stdout);
    fin>>N;
        for(int i=1;i<=N;++i)
        {int ok=0;
            nod *p;
            cin>>x;
            if(i==1)
                adauga(x);
            else if(x<=L->info) //in caz ca x ii cel mai mic element il adaugam normal
                {
                    adauga(x);
                }
            else
            {
            p=L;
            int ok2=1;

            if(p->urm)
            while(ok2)
                {
                if(p->urm->info<x)
                p=p->urm;
                    if(p->urm==NULL||p->urm->info>=x)
                        ok2=0;
                }
          //  cout<<"A";
            ok=1;
            }
                if(ok)
                adauga2(p,p->urm,x);

        }
        for(nod* a=L;a;a=a->urm)
            fout<<a->info<<" ";
}