У меня есть программа со структурой данных стека связанных списков, и задача состоит в том, чтобы отсортировать эту структуру и вывести ее в определенном порядке.
Я заполнил структуру элементами Name, Release, Length и Artist, и мне нужно отсортировать ее по дате выпуска и отсортировать результат.
У меня есть идея использовать пузырьковую сортировку для сравнения значений и их сортировки таким образом, но я не знаю, как реализовать это в стеке, а затем вывести их в правильном порядке. (Или просто используйте push \ pop вместо этого?)
#define in 5
#define na 25
#define re 5
#define le 5
#define ar 25
using namespace std;
struct KNOMERCY {
char index[in]; // Album's index
char name[na]; // Album's name
char release[re]; // Albums date release
char length[le]; // Album's length
char artist[ar]; // Album's artist
struct KNOMERCY *next;
};
struct KNOMERCY *savetop=NULL;
struct KNOMERCY *top=NULL;
и функция сортировки
void sortReleasedInput()
{
KNOMERCY *tmp;
tmp = top;
string year = string(tmp->release);
string reld;
int k;
for (savetop = top; savetop != NULL; savetop = savetop->next) {
tmp = string(savetop->release);
for (k = 0; k < 4; k++) {
year = tmp;
}
if (year == reld) {
break;
}
}
for (savetop = top; savetop != NULL; savetop = savetop->next) {
tmp = string(savetop->release);
for (k = 0; k < 4; k++) {
year = tmp;
}
if (year >= reld) {
outputCertainRelease();
cout << "************************************" << endl;
}
}
system("pause");
}
void outputCertainRelease() {
cout << "|ID | " << savetop->index << endl;
cout << "|Name | " << savetop->name << endl;
cout << "|Released | " << savetop->release << endl;
cout << "|Length | " << savetop->length << endl;
cout << "|Artist | " << savetop->artist << endl;;
cout << "\n" << endl; }
Структура загружена из файла:
1 LowBudgetButter 1997 46:04 Various
2 TimeBeing 2017 50:56 Cyne
3 TheColdVein 2001 1:14:04 CannibalOx
4 FucnrusherPlus 2002 1:14:04 CompanyFLow
5 Oneirology 2011 50:15 CunninLynguists
6 3rdEyeVision 1998 1:12:15 Hieroglyphics
7 TheBothSidesOfTheBrain 2000 1:13:42 DelTheFunkyHomosapien
8 PleemixVolumeOne 2005 1:06:52 A-Plus
9 StrangeJourneyVolumeThree 2014 53:53 CunninLynguists
10 FullCircle 2003 55:33 Hieroglyphics
Мой код сбой, потому что что-то не так. Буду рад за помощь.