PDA

View Full Version : مرتب کردن لیست



Gold_cpp
جمعه 28 آبان 1389, 20:48 عصر
با سلام
چطوری می توان یک لیست را بدون استفاده از لیست کمکی به صورت صعودی مرتب کنم . :متفکر:

این هم کدی که نوشتم و ایراد داره .




//in the name of allah
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
class Node
{
public:
int info;
Node *next;
Node(){next = NULL;}
Node (int x){ info = x; next = NULL;}
}*Help , *help;
class List
{
public:
Node *first;
List(){first = NULL;}
~List(){};
int getlist(int);
int printlasttofirst();
};
int List::getlist(int x)
{
Node *tmp = new Node(x);
if (!tmp)
return 0;//false
if(!first)
{
first = tmp;
Help = tmp;
}
else
{
Help->next = tmp;
Help = Help->next;
}
return 1;//true
}

int List::printlist()
{
if(!first)
return 0;//false
for(Help = first;Help;Help = Help->next)
cout << Help->info << "\t";
return 1;//true
}
//****************************************

int List::printlasttofirst()
{
Node *p;
int min = first->info;
for (help = first;help;help = help->next)
{
for (Help = help->next;Help;Help = Help->next)
{
if(min > Help->info)
{
min = Help->info;
p = help->next;
}
}
help->next = Help->next;
Help->next = p;
min = help->info;
}
return 1;//true
}

int main ()
{
randomize();
List d;
for(int i = 0;i < 10;i++)
d.getlist(random(100) + 1);
d.printlist();
d.printlasttofirst();
d.printlist();
getch();
return 0;
}

Gold_cpp
یک شنبه 30 آبان 1389, 19:26 عصر
با سلام
دیدم پست خالی و کسی نیست مشکل رو بر طرف کنه . گفتم کد درست رو بذارم بقیه اگه مشکل دارن حل بشه !:لبخند:




//in the name of allah
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
class Node
{
public:
int info;
Node *next;
Node(){next = NULL;}
Node (int x){ info = x; next = NULL;}
}*Help , *help;
class List
{
public:
Node *first;
List(){first = NULL;}
~List(){};
int getlist(int);
int swap(int &, int &);
int printlist();
int printlasttofirst();
};
int List::getlist(int x)
{
Node *tmp = new Node(x);
if (!tmp)
return 0;//false
if(!first)
{
first = tmp;
Help = tmp;
}
else
{
Help->next = tmp;
Help = Help->next;
}
return 1;//true
}

int List::printlist()
{
if(!first)
return 0;//false
for(Help = first;Help;Help = Help->next)
cout << Help->info << "\t";
return 1;//true
}
//****************************************
int List::swap(int &a, int& b)
{
int x;
x = a;
a = b;
b = x;
return 0;
}

int List::printlasttofirst()
{
Node *p;
for (help = first;help;help = help->next)
{
for (Help = help->next;Help;Help = Help->next)
if(help->info > Help->info)
swap(help->info , Help->info);
}
return 1;//true
}

int main ()
{
randomize();
List d;
for(int i = 0;i < 10;i++)
d.getlist(random(100) + 1);
d.printlist();
d.printlasttofirst();
d.printlist();
getch();
return 0;
}

python 2
دوشنبه 01 آذر 1389, 00:21 صبح
man ba zaban barnamehnevisi python kar mikonam aya kasi ba python ashnayi dare ke moshkelat man ro hal kone