Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2019, 20:10   #1
Андркус
Новичок
Джуниор
 
Регистрация: 19.11.2019
Сообщений: 1
По умолчанию Помогите с двусвязным списком.

Есть такое задание в двусвязном списке перед каждой буквой А вставить букву Д.

И есть такой код:
Код:
program word (input, output);
                type 
                zv2=^pointer2;
                pointer2=record
                elem:char;
                next:zv2;
                priv:zv2
                end;
                var
                vslov,vlan:zv2;
                sym:char;
                procedure vstav(lanka:zv2;buk:char);
                var
                q:zv2;
                begin
                new(q);
                q^.elem:=buk;
                q^.next:=lanka^.next;
                q^.priv:=lanka^.next^.priv;
                lanka^.next^.priv:=q;
                lanka^.next:=q;
                end;
                begin
                new(vslov);
                vslov^.elem:='a';
                vslov^.next:=vslov;
                vslov^.priv:=vslov;
                vlan:=vslov;
                repeat
                read(sym);
                vstav(vlan^.priv,sym);
                until sym = '.';
                write ('enter symbols');
                vlan:=vslov^.next;
                while vlan<>vslov do
                begin
                if vlan^.next^.elem = 'a' then
                begin
                vstav(vlan^.priv, 'd');
                vlan:=vslov;
                end;
                end;
                vlan:=vslov^.next;
                writeln;
                while vlan<>vslov do
                begin
                write(vlan^.elem);
                vlan:=vlan^.next
                end;
                writeln;
                end.
В общем он добавляет букву только вначале, а не по условию. Буду рад любой помощи так как уже всё попробовал. Спасибо!
Андркус вне форума Ответить с цитированием
Старый 20.11.2019, 09:21   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Кто же Вас так код форматировал научил?!! Не общайтесь с ним больше! Он Вас плохому учит!

и имя программы word - никуда не годится!

для начала, я бы отформатировал код:
Код:
program wordlist(input,output);

type
  zv2 = ^pointer2;
  pointer2 = record
    elem: char;
    next: zv2;
    priv: zv2
  end;

var
  vslov, vlan: zv2;
  sym: char;

procedure vstav(lanka: zv2; buk: char);
var
  q: zv2;
begin
  new(q);
  q^.elem := buk;
  q^.next := lanka^.next;
  q^.priv := lanka^.next^.priv;
  lanka^.next^.priv := q;
  lanka^.next := q;
end;

begin
  new(vslov);
  vslov^.elem := 'a';
  vslov^.next := vslov;
  vslov^.priv := vslov;
  vlan := vslov;
  repeat
    read(sym);
    vstav(vlan^.priv, sym);
  until sym = '.';
  write('enter symbols');
  vlan := vslov^.next;
  while vlan <> vslov do
  begin
    if vlan^.next^.elem = 'a' then
    begin
      vstav(vlan^.priv, 'd');
      vlan := vslov;
    end;
  end;
  vlan := vslov^.next;
  writeln;
  while vlan <> vslov do
  begin
    write(vlan^.elem);
    vlan := vlan^.next
  end;
  writeln;
end.
второе.
Зачем у Вас два списка ?
Цитата:
Код:
var
  vslov, vlan: zv2;

Последний раз редактировалось Serge_Bliznykov; 20.11.2019 в 09:25.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.11.2019, 09:33   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Так. Отбой. Не заметил, что создана тема во Фрилансе.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа для работы с двусвязным нециклическим списком. инверсия списка siner Общие вопросы C/C++ 1 04.11.2013 11:37
действие с двусвязным списком Тиса Паскаль, Turbo Pascal, PascalABC.NET 1 23.05.2012 19:27
Работа с двусвязным списком pavlintseva Помощь студентам 0 14.04.2011 18:10
Калькулятор на С++ с двусвязным списком Anastassija Общие вопросы C/C++ 4 24.06.2010 11:20