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

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

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

> Графический вывод списка
killswitch
сообщение 30.11.2007 12:35
Сообщение #1





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

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


Помогите с задачей плиз, а то уже скоро сессия=(
Задача: Создать 2 списка, потом их отсортировать, и эти два отсортированных списка слить в один - 3-ий так, чтобы он был сразу отсортированным. И самая жесть, это реализовать графический (unit Graph) вывод списка!
У меня сделано создание списков, их сортировка, слияние даже обычное не получается, а графический вывод вообще не знаю как сделать=(

Вот моя программа, надо переделать процедуру Unite и еще сделать процедуру графического вывода

uses Crt;
type plist = ^list;
list = record
info: integer;
link: plist;
end;
var
f1,f2,f3,top:plist;
procedure rdlist(var lst: plist);
var p,q,s: plist;
buf: integer;
function rdint(var buf:integer):Boolean;
begin
{$i-}
read(buf);
rdint:=IOResult=0;
{$i+}
end;{rdint}
begin
q:=nil;
while rdint(buf) do
begin
new(s);
s^.info:=buf;
s^.link:=q;
q:=s;
end;
p:=nil;
while q<>nil do
begin
s:=q; q:=q^.link;
s^.link:=p; p:=s;
end;
lst:=p;
end; {rdlist}
procedure wrlist(f:plist);
begin
if f<>nil then
begin
write (f^.info, ' ');
wrlist (f^.link);
end;
end;
Function Sort(head : plist) : plist;
var newh, max, prev, pmax, cur : plist;
begin
newh:=nil;
while head<>nil do
begin
max:=head;
prev:=head;
cur:=head^.link;
while cur<>nil do
begin
if cur^.info>max^.info then
begin
max:=cur;
pmax:=prev;
end;
prev:=cur; cur:=cur^.link;
end;
if max=head then head:=head^.link
else pmax^.link:=max^.link;
max^.link:=newh; newh:=max;
end;
Sort:=newh;
end;
Procedure Unite (var cur, head1, head2 : plist);
begin
if head2<>nil then
begin
if head1=nil then
head1:=head2 else
begin
cur:=head1;
while cur^.link<>nil do
begin
cur^.info:=head1^.info;
cur:=cur^.link;
head1:=head1^.link;
end;
cur^.link:=head2;
end;
head2:=nil;
end;
end;
BEGIN
clrscr;
write('Spisok 1(letter for exit) = ');
rdlist(f1);
wrlist(f1);
writeln;
write('Spisok 2(letter for exit) = ');
rdlist(f2);
wrlist(f2);
writeln;
write('Otsortirovanni spisok 1 = ');
f1 := sort(f1);
wrlist(f1);
writeln;
write('Otsortirovanni spisok 2 = ');
f2:= sort(f2);
wrlist(f2);
writeln;
write('Novi spisok = ');
unite(f3,f1,f2);
wrlist(f3);
readln;
readln;
end.


М
Используй теги для программных текстов!
-- Лопарь



Прикрепленные файлы
Прикрепленный файл  new_spisok.pas ( 2.46 килобайт ) Кол-во скачиваний: 211
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 30.11.2007 12:46
Сообщение #2


Гость






Цитата
а то уже скоро сессия
Ты знаешь, вот это как-то нас интересует меньше всего... Скоро у тебя сессия, или не очень - это твоя проблема. Ты ж раньше чем-то занимался? Наверняка чем-то другим, более интересным, да? А теперь вот приходится в спешном порядке долги закрывать? Ну, что ж поделаешь...

А по теме - на форуме неоднократно выкладывались программы сортировки списков, + к этому (насколько я помню) я приводил программу, сливающую 2 списка в один без нарушения упорядоченности (попробую найти ссылку).

Что касается графического представления списка - то можешь посмотреть вот тут: Графическое представление бинарного дерева , в принципе, идею уловить можно, но вот переписывать я ее для списков не буду... Хочешь - начни переделывать, что не будет получаться - спрашивай, подскажем...

Update: я ж говорю, что видел ту процедуру слияния: динамическая структура данных

А вот тут - то, что я делал: Объединение 2 упорядоченных списков

Сообщение отредактировано: volvo - 30.11.2007 13:01
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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