@
@LE}{@NDER
Нужна помощь в исправлении кода. Есть класс Library и структура Book на основе которых я реализовал односвязный список + различные методы, добавление элементов, удаление элементов, поиск. А вот с сортировкой по полям возникли проблемы. Если кто-то сможет помочь буду очень благодарен.
Это интерфейс класса:
а вот и сама функция
зараннее спасибо!
Это интерфейс класса:
Код:
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <string>
using namespace std;
///////////////////////////////////////////////////////////
struct Book // один элемент списка
{
int index;
string Name;
string Author;
int Year;
Book* next; // указатель на следующую структуру
};
///////////////////////////////////////////////////////////
class Library // список
{
private:
Book* first;
Book* last;
public:
Library ( ) // конструктор без параметров
{ first = NULL; } // первого элемента пока нет
void AddBook ( int a, string b, string c, int d); // добавление элемента
void ShowList ( ); // показ данных
Book* SearchName(string &str);
bool SearchAuthor(string &str);
void ShowBook(Book* ptr);
void SortName(); //[b]вот с этой функцией проблемы[/b]
bool DeleteBook(const string &sNameBook);
};
а вот и сама функция
Код:
void Library::SortName()
{
Book* previous=NULL;
Book* current=first;
Book* next=current->next;
Book* temp;
while(current->next!=NULL)
{
while(next!=NULL)
{
if((current->Name)<(next->Name)) /*используется #include <string> содержащий перегруженные методы < >*/
{
previous=next;
temp=next->next;
next->next=current;
current->next=temp;
}
else
next=next->next;
}
current=current->next;
}
}
зараннее спасибо!