![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Krjuger |
![]()
Сообщение
#1
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
В общем задача заключается в том чтобы после елемента списока P1,с ключем Х,равным задаваемому значению А,вставить список P2.
Type
TElem = string;
TList = ^TNode;
TNode = record
Info: TElem;
Next: TList
end;
var
P1,P2:TList;
r:TList;
A:integer;
Procedure Insert(var P1: Tlist; x : integer);
begin
new(r);
r^.info:=x;
r^.next:=P1^.next;
P1^.next:=r;
end;
Тут я беру элемент из списка п2 и записываю его после элемента с ключем Х.В общем моя идея заключалась в том,чтобы создать процедуру,которая будет юзять insert и потихоньку выдирая из п2 по 1 элементу вставлять их каждый раз сдвигая ключ на 1,тем самым впихнуть весь список, но как это реализовать хз. Так же есть вопрос немного в другой области.Необходимо взять из конца дека V элементов и вставить их в стек,вот тут приветствуются лбые идеи,потому что своих совсем нет((( P.s.Просьба на фак не тыкать прочитал и не один,но если есть конкретные вещи из фака ,тобуду только рад. |
![]() ![]() |
Krjuger |
![]()
Сообщение
#2
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Program laba9;
Type
point = ^item;
item = record
Number: integer;
Next: point;
end;
var
P1,P2: pointer;
A:integer;
Procedure SeachAndInsert(P1,P2: point ; x : integer ; var q : point);
var
flag : boolean;
save:Point;
begin
flag:=true;
while (P1<>nil) and flag=true do
begin
if P1^.number=x then
begin
flag:=false;
save^.next:=P1^.next;
end
else
begin
P1:=P1^.next;
end;
end;
P1^.next:=P2;
while P2^.next<> nil do
P1:=P2^.next;
P1^.next:=save^.next;
end;
Ну вроде как то так получилось,но все равно не работает.
procedure BListPrint(var P1 : pointer );
begin
write('< ');
while P1 <> nil DO
begin
write( P1^.number );
If P1^.Next <> nil then write(',');
P1 := P1^.Next
end;
writeln(' >')
end;
Тут Invalid qualifier в строке write( P1^.number );хз че сделать. |
![]() ![]() |
![]() |
Текстовая версия | 23.07.2025 12:07 |