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

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

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

 
 Ответить  Открыть новую тему 
> Односвязный список, формирование
nikita182
сообщение 24.05.2007 18:11
Сообщение #1


Пионер
**

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

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


файл исходных данных содержит:

D9 372
A7 8633 8634
H5 4107 4108
E6 1525

список имеет вид:
Прикрепленное изображение


собственно, мне не понятно как такой список сформировать..
натолкните, пожалуйста на мысль..


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 24.05.2007 19:18
Сообщение #2


Гость






Попробуй поиск по слову "мультисписок"... Я как-то выкладывал нечто подобное.
 К началу страницы 
+ Ответить 
nikita182
сообщение 24.05.2007 20:26
Сообщение #3


Пионер
**

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

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


Цитата(volvo @ 24.05.2007 20:18) *

Попробуй поиск по слову "мультисписок"... Я как-то выкладывал нечто подобное.


вот, нашел только это:
мультисписок

взял оттуда ту программу, которую ты написал и попробовал вывести на экран массив:
1 2 3
4 5 6
7 8 9

но напечаталась только последняя строка. либо я неправильно вывожу на печать, либо еще что-то..

вот текст программы:


uses crt;

type
plist = ^tlist;
tlist = record
col_num, value: integer;
next: plist;
end;

pvector = ^tvector;
tvector = record
row_num: integer;
next: pvector;
end;

var
f: text;
pl, pl_first, pl_last: plist;
pv, pv_first, pv_last: pvector;

i, j, X: integer;

begin
clrscr;
assign(f, '---.txt');
reset(f);

pv_first := nil; pv_last := nil;

i := 1;
while not seekeof(f) do begin

j := 1; pl_first := nil; pl_last := nil;

while not seekeoln(f) do begin

read(f, X);

if X <> 0 then begin

new(pl);
pl^.value := x;
pl^.col_num := j;
pl^.next := nil;

if pl_first = nil then pl_first := pl
else pl_last^.next := pl;
pl_last := pl;

inc(j);
end;

end;
readln(f);

if pl_first <> nil then begin
new(pv);
pv^.row_num := i;
pv^.next := nil;

if pv_first = nil then pv_first := pv
else pv_last^.next := pv;
pv_last := pv;
end;

inc(i);
end;

close(f);



pl := pl_first; pv := pv_first;
while pv <> nil do begin
while pl <> nil do begin
write (pl^.value);
pl := pl^.next; {собственно, добавил только этот кусок}
end;
writeln;
pv := pv^.next;
end;



readkey;
end.


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 24.05.2007 20:41
Сообщение #4


Гость






Я ж написал, что это - только набросок... Вот так работает:

{ немного меняем тип TVector ... }

pvector = ^tvector;
tvector = record
row_num: integer;
child: plist;
next: pvector;
end;

{ ... и саму программу: }
...

{ до этого - все правильно }

if pl_first <> nil then begin
new(pv);
pv^.row_num := i;
pv^.next := nil;

if pv_first = nil then pv_first := pv
else pv_last^.next := pv;
pv_last := pv;

pv_last^.child := pl_first; { <--- Вот этого не хватало !!! }
end;

inc(i);
end;
close(f);


{ Ну, и печать, естественно тоже корректируем: }
pv := pv_first;
while pv <> nil do begin

pl := pv^.child;
while pl <> nil do begin

write (pl^.value:5);
pl := pl^.next;

end;
writeln;

pv := pv^.next;
end;
...


 К началу страницы 
+ Ответить 
nikita182
сообщение 24.05.2007 20:52
Сообщение #5


Пионер
**

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

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


т.е. ты добавил указатель на следующую строку?


child: plist;

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 24.05.2007 20:54
Сообщение #6


Гость






Я добавил указатель на дочерний список.
 К началу страницы 
+ Ответить 

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

 



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