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

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

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

> "Двунаправленный список" ---мальчики help плз., Маленькая помощь "Двунаправленный список"
..::Даша::..
сообщение 13.05.2008 18:32
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Женский
Реальное имя: Даша

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


Приветик! :-) всем!
Мне нужна маленькая помощь )


program SOD_L3;
uses crt;
Type mem=^element;
element=record
inf1:real;
inf2:real;
next:mem;
prev:mem;
end;

var first,list,key,x:mem;
i,c:integer;
begin
clrscr;
randomize;
New(first);
first^.next:=nil;
first^.prev:=nil;
first^.inf1:=random(20);
first^.inf2:=random(20);
x:=first;
for i:=1 to 5 do
begin
New(x^.next);
x:=x^.next;
x^.inf1:=random(20);
x^.inf2:=random(20);
x^.next:=nil;
end;
{--------------------------------------}
writeln(' -Spisok-');
writeln('______________________');
list:=first;
c:=0;
while list^.next <> nil do
begin
c:=c+1;
write('|',c,'|',list^.inf1:6:2);
writeln(' |',c,'|',list^.inf2:6:2,' |');
list:=list^.next;
end;
{-----------------------------------------}
writeln;
for i:=1 to 5 do
begin
while list^.next <> nil do
begin
if list^.inf1>0 then list^.inf2:=-1;

end;
end;

Dispose(list);

readln;
end.



теперь нужно доделать тока "Додати 1 елемент після елементу, перше поле якого >0 "....

Пожалуйста помогите доделать потомучно срочненько нужно :-)...

Жду ответиков :-))


--------------------
// Дарья - сильная, побеждающая.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
Closed Topic Открыть новую тему 
Ответов
mind abuse
сообщение 13.05.2008 20:48
Сообщение #2


Студент
*

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

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


Вот нечто, посмотрите:
Код
Type sp = ^s;  {список}
     s = record
      i: integer;
      next: sp;
      back: sp;
     End;

Procedure Add_v_kon (first: sp);   {добавление в конец списка}
Var x, q: sp;
Begin
q:= first;
while (q^.next<>nil) do q:=q^.next;  {проходим в конец списка}
New (x);  {создаём новый элемент}
Readln (x^.i);
q^.next:= x;  {ссылаемся на новый элемент}
x^.next:= nil;
x^.back:= q;
End;
Procedure Add_v_nach (var first: sp);  {добавление в начало}
Var x: sp;
Begin
New (x);
Writeln ('?');
Readln (x^.i);
x^.back:= nil;
x^.next:= first;
first:= x;
End;
Procedure Add_tuda_pered (first: sp; k: integer);  {добавление перед к-атым элементом}
Var h: integer;
    x, p, q: sp;
Begin
q:= first;
For h:=1 to k-2 do q:= q^.next;
New (x);
Writeln ('?');
Readln (x^.i);
p:= q^.next;  x^.back:= q; q^.next:= x;
q:= p;
x^.next:= p;
q^.back:= x;
End;
Procedure Add_tuda_posle (first: sp; k: integer);  {добавление после к-атого элемента}
Var h: integer;
    x, p, q: sp;
Begin
q:= first;
For h:=1 to k-1 do q:= q^.next;
New (x);
Writeln ('?');
Readln (x^.i);
p:= q^.next;
q^.next:= x;
x^.next:= p;
x^.back:= q;
q:= p;
q^.back:= x;
End;

Procedure Del_to (var first: sp; k: integer);  {удалить к-атый элемент}
Var p, q: sp; h: integer;
Begin
If k<>1 then
Begin
  q:= first;
  For h:= 1 to k-2 do q:= q^.next;
  p:= q^.next;
  q^.next:= p^.next;
  q:= p^.next;
  q^.back:= p^.back;
  Dispose (p);
End else
Begin
  p:= first;
  first:= first^.next;
  Dispose (p); q:= first; q^.back:= nil;
End;
End;


Ну и конечно Все о динамических структурах данных.


--------------------
...Чего-то хотелось: не то конституции, не то севрюжины с хреном, не то кого-нибудь ободрать.
(М. Е. Салтыков-Щедрин)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



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