IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Как отсортировать?, двусторонний динамич. список
pukelis
сообщение 3.05.2005 12:17
Сообщение #1


Гость






По возрастанию ли - убыванию - нет разницы. smile.gif Надо всего лишь создать некую процедуру, что для таких АСОВ как Вы - не составит труда.. ^_^ Жду с нетерпением Вашей помощи! ;)

Код
program rabota;
type spis = ^el;
     el  = record
        next:spis;
        data : integer;
        back : spis;
     end;
             
procedure sozdat_spisok ( var nach, konc : spis );
  var g : spis;
      x : integer;
begin  { sozdat_spisok }
nach  := nil;    
konc := nil;
writeln('Sozdaem spisok, vvedite celye 4isla.');
writeln('Hotite zakon4it - voodite 0.');
readln ( x );
while x <> 0 do
   begin
     if nach = nil
     then
       begin
         new( g );
         g^.data  := x;
         g^.next := nil;
         g^.back := nil;
         nach       := g;
         konc      := g;
         readln( x );
       end
     else  
       begin
         new( g );
         g^.data    := x;
         g^.next   := nil;
         g^.back := konc;
         konc^.pnext:=g;
         konc        := g;
         readln( x );
       end
   end;
writeln('Spisok uspe6no sozdan');
end; { Sozdat spisok }

procedure pe4atat( nach : spis );
var p : spis;
begin  { pe4atat }
  writeln('pe4ataem spisok:' );
  p := nach;
  while p <> nil do
    begin
      write( p^.data, ' ');
      p := p^.next;
    end;
  writeln;
end; { pe4atat }

procedure uni4tozhit( var nach, konc : spis );
var s : spis;
begin  { uni4tozhit }
  writeln('uni4tozhaem spisok s konca.');
  while pr <> nil do
  begin

     s := nach;
     if konc <> nach
     then
       begin
         while (s^.next <> konc) and (nach<>konc) do
               s := s^.next;
         writeln('  uni4tozhaem ', s^.next^.data);
         konc := s;
         dispose( s^.next );
       end
     else
       begin
         writeln('  Ui4tozhaem 1-j: ', s^.data);
         dispose( s );
         nach  := nil;
         konc := nil;
       end;
  end;
end; { uni4tozhit }

var na4alo, konec : spis;
begin
  sozdat_spisok ( na4alo, konec );
  pe4atat ( na4alo );
 uni4tozhit(na4alo,konec);

end.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Pukelis
сообщение 3.05.2005 23:34
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской

Репутация: -  0  +


Цитата
Вывод не отработан, очень трудно следить за результатами.

unsure.gif поетому я и не хотел ее сразу выкладывать ;) Она переделывалась из статической, где все было гладенько smile.gif

Цитата
Кстати, я добился того что она начала сортировать ( для этого достаточно передавать BubbleList(nachalo); ), но при пошаговом прогоне обратил внимание, что в первой же паре, которая меняется местами, есть отрицательное значение стоимости (= -17536). Глюк? Сначала отрабатывается алгоритм, а уже потом - сортировка...


BubbleList(nachalo); - ето куда? Алгоритм еще попробую причесать.. Иначе в пятницу звиздец настанет (( :o

Сообщение отредактировано: Pukelis - 3.05.2005 23:35
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
pukelis   Как отсортировать?   3.05.2005 12:17
volvo   Ну, во-первых, сразу возникает вопрос - можно или ...   3.05.2005 12:51
Guest   Все переделывать как-то неохота, тк на етой проге ...   3.05.2005 13:00
volvo   Ну, тогда вспомни как выглядит пузырьковая сортиро...   3.05.2005 13:34
Pukelis   TX!! вот именно имитация пузырька мне и бы...   3.05.2005 13:45
Guest   у меня что-то компилятор ругается на function fin...   3.05.2005 14:08
volvo   Ну да, конечно. Я в одном месте поменял, в другом ...   3.05.2005 14:14
Pukelis   задача такая: используя инфу из 2-х разных файлов ...   3.05.2005 14:26
volvo   То есть, как я понял, список содержит И имя, И фа...   3.05.2005 14:55
Guest   program Noname1; uses crt; type klient=^kli; ...   3.05.2005 15:03
volvo   Ну так тогда в чем дело? Просто объедини все поля ...   3.05.2005 15:24
Pukelis   Вот, перевел прогу ))) Посмотри, куда что вставить...   3.05.2005 16:41
volvo   Вот так (см. аттач)... А теперь можешь спокойно со...   3.05.2005 16:57
Pukelis   попробовал я сделать как ты говорил.. не пашет ниф...   3.05.2005 18:42
volvo   Только одна просьба - такие большие исходники прис...   3.05.2005 19:17
Pukelis   :) Пасииб, да, компилируется превосходно, но при р...   3.05.2005 19:54
volvo   :blink: Sorry... My fault Ошибка закралась вот ...   3.05.2005 20:16
Pukelis   та же фигня (( Вот как прога выглядит сейчас (см. ...   3.05.2005 20:35
volvo   Pukelis, а ты уверен, что N содержит правильное зн...   3.05.2005 21:02
Pukelis   ошибка пропала, но сортировка не происходит (( Ком...   3.05.2005 22:07
volvo   В-общем, с такими файлами данных ты замучаешься де...   3.05.2005 23:07
Pukelis   :unsure: поетому я и не хотел ее сразу выкладыват...   3.05.2005 23:34
volvo   Значится, так... :) Вот что мне удалось сделать п...   4.05.2005 1:53
Pukelis   :) ПАСИБ!!! :molitva: Ты - просто су...   4.05.2005 7:09
Pukelis   Ну а вот и вопросы, которые я собирался тебе задат...   5.05.2005 20:59
volvo   Значит, по-порядку: :) Пробел - это для гаранти...   5.05.2005 22:12
Pukelis   спасибо, ВСЕ понял! :) Узнал много нового для ...   5.05.2005 22:21
sheka   я бы использовал не пузырьковую, а гибридную: тот ...   1.06.2011 16:43


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.07.2025 20:07
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"