Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2009, 00:33   #1
Nazerbaev
 
Аватар для Nazerbaev
 
Регистрация: 07.04.2009
Сообщений: 7
По умолчанию Односвязный список. Delphi

Всем, Привет! Вот у меня задача: "Упорядочить елементы списка по убыванию используя сортировку посредством выбора максимального елемента." Помогите написать код )) Заранее благодарен
Nazerbaev вне форума Ответить с цитированием
Старый 07.04.2009, 00:50   #2
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию

сортировка через указатели или через данные?
capta1n вне форума Ответить с цитированием
Старый 07.04.2009, 10:43   #3
Nazerbaev
 
Аватар для Nazerbaev
 
Регистрация: 07.04.2009
Сообщений: 7
По умолчанию

Цитата:
Сообщение от capta1n Посмотреть сообщение
сортировка через указатели или через данные?
Точно забыл написать, сортировка через указатели )

ребята, пока задача не решена )) азы этого знаю.. но блин ничего не получаеться(

Последний раз редактировалось Stilet; 09.04.2009 в 12:02.
Nazerbaev вне форума Ответить с цитированием
Старый 08.04.2009, 21:27   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну так приводите СВОЙ исходный код, который строит/заполняет список, процедуру ображения списка.
Тогда будет разговор о сортировке...
а так пока не видно, что Вы сделали..

p.s. идея сортировки через указатели заключается в том, что сами значения элементов списка не трогаются, а изменяются только ссылки...
вот, простейший случай - сортировка "пузырьком".
допустим P1->P2->P3->P4->nil
если мы сравнили P2.MyData > P3.MyData
значит надо поменять P2 и P3.
меняем указатели:
переписываем указатели в P1 чтобы показывал на P3
в P3 чтобы показывал на P2
в P2 чтобы показывал на P4
получаем:
P1->P3->P2->P4->nil
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.04.2009, 11:50   #5
Nazerbaev
 
Аватар для Nazerbaev
 
Регистрация: 07.04.2009
Сообщений: 7
По умолчанию

Угу.. вот что получаеться:

Код:
type
  TPSpisok=^TSpisok;
  TSpisok = record
  chislo:integer;  
  next: TPSpisok; 
  end;
Ввод делаю так:
Код:
var
   curr: TPSpisok;
begin
   new(curr); //создание нового елемента списка
   curr^.chislo:=strtoint(Edit1.Text);

   // добавление в начало списка
   curr^.next:=head;
   head:=curr;
   Edit1.text:='';
Вывод:
Код:
var
 curr: TPSpisok;
 n:integer; 
 st:string; 
begin
 n:=0;
 st:='';
 curr:=head;
 while curr <> NIL do
    begin
      n:=n+1;
      st:=st+inttostr(curr^.chislo)+#13;
      curr:=curr^.next;
    end;
 if n <> 0
    then ShowMessage('Список:'+#13+st)
    else ShowMessage('В списке нет елементов.');
end;
P.s. Думаю вы теперь поможете)

From Stilet: А код когда оформлять научимся?

Последний раз редактировалось Stilet; 09.04.2009 в 12:03.
Nazerbaev вне форума Ответить с цитированием
Старый 09.04.2009, 12:16   #6
Nazerbaev
 
Аватар для Nazerbaev
 
Регистрация: 07.04.2009
Сообщений: 7
По умолчанию

Stilet: Sorry я невонький )) Скоро научусь.
Nazerbaev вне форума Ответить с цитированием
Старый 11.04.2009, 13:55   #7
Nazerbaev
 
Аватар для Nazerbaev
 
Регистрация: 07.04.2009
Сообщений: 7
По умолчанию

ну и кто поможет?
Nazerbaev вне форума Ответить с цитированием
Старый 11.04.2009, 14:47   #8
Дамир
Пользователь Подтвердите свой е-майл
 
Регистрация: 06.12.2006
Сообщений: 61
По умолчанию

Может как-то так:
Код:
Procedure Sort(P:PLIst);
Var F,F1:PList;Sorted:Boolean;

Begin
  Sorted:=False;
  While Sorted Do Begin
 	Sorted:=True;
        F:=P;
	While (f<>nil)and(F^.link<>nil) Do Begin
 	    F1:=F;
    	    F:=F^.Link;
 	    If F^.Info>F1^.Info Then Begin
		f1^.Link:=F^.link;
		F^.Link:=f1;
		If p=f1 Then p:=f;
 		F:=F^.Link;	
		Sorted:=False;
	    End;
	End;
  End;
End;
Только правь код, как тебе надо
Дамир вне форума Ответить с цитированием
Старый 22.04.2009, 23:12   #9
Nazerbaev
 
Аватар для Nazerbaev
 
Регистрация: 07.04.2009
Сообщений: 7
По умолчанию

Спасибо, ребята получилось! ))
Nazerbaev вне форума Ответить с цитированием
Старый 23.05.2009, 20:07   #10
IAmRock
Новичок
Джуниор
 
Регистрация: 23.05.2009
Сообщений: 1
По умолчанию

Nazerbaev
А ты не мог бы показать, что получилось? Пожалуйста!
IAmRock вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Односвязный список. С++ Ozza Помощь студентам 1 06.02.2009 02:09
Шаблонный односвязный список _ares_ Общие вопросы C/C++ 4 06.12.2008 21:35
Линейный односвязный список Absinth Помощь студентам 4 11.11.2008 20:29
КОЛЬЦЕВОЙ ОДНОСВЯЗНЫЙ СПИСОК __FIRST__ Помощь студентам 0 01.11.2008 17:16
C: односвязный список в файле getfear Помощь студентам 7 04.01.2008 19:26