Как отсортировать динамический список ?

У меня есть динамический список (TSpisok), в котором есть наименование, цена и диагональ. Как мне отсортировать этот список по размеру диагонали ? Только через массив ?

type
  TPSpisok=^TSpisok; //указатель на тип TSpisok

  TSpisok = record
  name:string[20];  // имя
	price: string[20]; // цена
  diagonal: string[20];  // диагональ
	next: TPSpisok;    // следующий элемент списка
  end;

var
  head: TPSpisok;  // начало (голова) списка

// добавить элемент в начало списка
procedure TForm1.Button1Click(Sender: TObject);
var
   curr: TPSpisok;  // новый элемент списка
begin
   new(curr); // выделить память для элемента списка
   curr^.name:= Edit1.Text;
   curr^.price:= Edit2.Text;
   curr^.diagonal:= Edit3.Text;

   // добавление в начало списка
   curr^.next := head;
   head := curr;


   // очистить поля ввода
   Edit1.text:='';
   Edit2.text:='';
   Edit3.text:='';
end;
  • Вопрос задан
  • 2567 просмотров
Решения вопроса 1
gbg
@gbg Куратор тега Программирование
Любые ответы на любые вопросы
Ужас-то какой, зачем же диагональ строкой-то хранить...

По делу.
Внешний перебор всех элементов с первого до последнего
Внутри еще перебор с того элемента на котором стоит внешний перебор и до последнего
если диагональ_того_на_котором_внешний_перебор < диагонали_того_на_котором_стоит_внутренний_перебор - обменять их местами.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы