Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 64

Вставить новый элемент в список перед каждым вхождением заданного элемента

09.04.2015, 18:52. Показов 3227. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать программу, содержащую процедуру, которая вставляет новый элемент перед каждым вхождением заданного элемента.
Буду благодарен!Спасибо!!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.04.2015, 18:52
Ответы с готовыми решениями:

Процедура: вставить новый элемент перед каждым вхождением заданного элемента в список
Каждая компонента списка определяется ключом (число или строка символов). Написать программу, содержащую процедуру, которая вставляет...

Вставить новый элемент перед каждым вхождением заданного элемента в списке
Каждая компонента списка определяется ключом (число или строка символов). Написать программу, содержащую процедуру, которая вставляет...

В слово, заканчивающимся точкой, вставить новый элемент е1 за каждым вхождением элемента е2(исправить)
Помогите исправить программу таких образом, чтобы вставлялся элемент только в том "слове", после которого стоит точка, а не во...

16
0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 18
09.04.2015, 23:05
Какой список должен быть?
0
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 64
10.04.2015, 14:07  [ТС]
связной список
0
0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 18
10.04.2015, 14:09
Линейный или циклический ?
0
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 64
10.04.2015, 14:13  [ТС]
линейный
0
0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 18
10.04.2015, 15:48
Двосвязый или односвязный ?
0
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 64
10.04.2015, 20:49  [ТС]
односвязный
0
0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 18
11.04.2015, 08:29
Вроде так должно быть
.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 type
PNode = ^TNode;
TNode = record
Data: integer;
Next: PNode;
end;
 procedure push(var p,p_el:pnode;b:integer);
  var temp,temp1:pnode;
  begin
  temp:=p1;
  if p1=temp^.next then begin
  new(temp1);
  temp1^.next:=temp^.next;
  temp^.next:=temp1;
  temp1^.data:=b;
  end
  else begin temp:=temp^.next;
 
  end;
 
  end;
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33395 / 21505 / 8236
Регистрация: 22.10.2011
Сообщений: 36,901
Записей в блоге: 12
11.04.2015, 12:36
Лучший ответ Сообщение было отмечено alexsius как решение

Решение

Цитата Сообщение от scalder Посмотреть сообщение
Вроде так должно быть
Ну, и перед вхождением какого элемента будет вставлено значение b? Прогони свою программу на списке <1, 1, 1, 4, 7, 1, 11, 21, 1> например. Результат должен быть таким:
<20, 1, 20, 1, 20, 1, 4, 7, 20, 1, 11, 21, 20, 1>


Вот так решается задача:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure push(value, new_value : integer;
               var head, tail : pnode);
 
  function sub(var pt : pnode) : pnode;
  begin
    new(result);
    result^.data := new_value;
    result^.next := pt;
    pt := result;
  end;
 
var p, p_new : pnode;
begin
  p := head;
 
  if head^.data = value then sub(head);
 
  while p^.next <> nil do
  begin
    if p^.next^.data = value then p := sub(p^.next);
    p := p^.next;
  end;
end;
, вызывать - так:
Pascal
1
2
3
  print(head);
  push(1, 20, head, tail); // <---
  print(head);
, где head - указатель на "голову" списка, а tail - на его "хвост"...
1
0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 18
11.04.2015, 19:33
Я думал, что заданый елемент это какой то адрес в списке, потому такая вот ошибка.
0
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 64
23.04.2015, 19:10  [ТС]
Цитата Сообщение от volvo Посмотреть сообщение
Вот так решается задача:
а можете пожалуйста еще написать как задать список,самое начало,спасибо
0
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 64
26.04.2015, 13:37  [ТС]
Цитата Сообщение от volvo Посмотреть сообщение
Вот так решается задача:
если не трудно,напишите программу целиком,а то не получается разобраться с переменными!!Большое спасибо!
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33395 / 21505 / 8236
Регистрация: 22.10.2011
Сообщений: 36,901
Записей в блоге: 12
26.04.2015, 13:42
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
{$mode objfpc}
type
  pnode = ^tnode;
  tnode = record
    data : integer;
    next : pnode;
  end;
 
var head, tail: pnode;
 
procedure append(var head, tail : pnode; value : integer);
var p : pnode;
begin
  new(p);
  p^.next := nil;
  p^.data := value;
  if head = nil then head := p
  else tail^.next := p;
  tail := p;
end;
 
procedure push(value, new_value : integer;
               var head, tail : pnode);
 
  function sub(var pt : pnode) : pnode;
  begin
    new(result);
    result^.data := new_value;
    result^.next := pt;
    pt := result;
  end;
 
var p, p_new : pnode;
begin
  p := head;
 
  if head^.data = value then sub(head);
 
  while p^.next <> nil do
  begin
    if p^.next^.data = value then p := sub(p^.next);
    p := p^.next;
  end;
end;
 
procedure print(head : pnode);
begin
  while head <> nil do
  begin
    write(head^.data:3);
    head := head^.next;
  end;
  writeln;
end;
 
begin
  head := nil; tail := nil;
  append(head, tail, 1);
  append(head, tail, 1);
  append(head, tail, 1);
  append(head, tail, 4);
  append(head, tail, 7);
  append(head, tail, 1);
  append(head, tail, 11);
  append(head, tail, 21);
  append(head, tail, 1);
 
  print(head);
  push(1, 20, head, tail);
  print(head);
  // Сюда добавь еще удаление списка
end.
1
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 64
26.04.2015, 14:07  [ТС]
Цитата Сообщение от volvo Посмотреть сообщение
end.
спасибо!а можно ли сделать что самому заполнять список и ввести этот элемент?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33395 / 21505 / 8236
Регистрация: 22.10.2011
Сообщений: 36,901
Записей в блоге: 12
26.04.2015, 15:12
Какой "этот"? Я и так сам список заполняю, если что...
0
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 64
26.04.2015, 18:01  [ТС]
Цитата Сообщение от volvo Посмотреть сообщение
Какой "этот"? Я и так сам список заполняю, если что...
простите, я имел ввиду ввести с клавиатуры сам список,элемент который должен входить и перед которым вставлять нужно.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33395 / 21505 / 8236
Регистрация: 22.10.2011
Сообщений: 36,901
Записей в блоге: 12
26.04.2015, 18:12
Ну в чем проблема дописать цикл ввода данных, и потом запросить, что искать и что добавлять?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// процедуры - те же
 
var
  item, value : integer;
  ans : char;
 
begin
  head := nil; tail := nil;
  repeat
    write(' -> '); readln(item);
    append(head, tail, item);
    write('continue? [Y/N]'); readln(ans);
  until ans in ['N', 'n']; // пока не введешь N или n - будет запрашивать элементы списка
 
  write('Вставить перед : '); readln(item);
  write('Значение : '); readln(value);
  print(head);
  push(item, value, head, tail);
  print(head);
  // удаление
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.04.2015, 18:12
Помогаю со студенческими работами здесь

Однонаправленные списки. В слове, заканчивающемся точкой, удалить за каждым вхождением элемента Е один элемент
помогите пожалуйста,в слове,заканчивающеуся точкой,удалить за каждым вхождении элемента Е один элемент,есть такой и он отлиен от Е.

Списки и указатели. Вставить новый элемент перед каждым вхождением заданного элемента
Написать программу, содержащую процедуру, которая вставляет новый элемент перед каждым вхождением заданного элемента. Если элементы не...

разместить элементы файла в динамической памяти, Вставить в список L новый элемент F1 перед первым вхождением элемента.
ребят привет всем, помогите написать текст программы для задачи. вот условие: Создать файл вещественных чисел, разместить элементы...

Описать процедуру, которая вставляет в список L новый элемент E1 за каждым вхождением элемента Е
Описать процедуру, которая вставляет в список L новый элемент E1 за каждым вхождением элемента Е

Описать процедуру, которая вставляет в список L новый элемент E1 за каждым вхождением элемента Е
Описать процедуру, которая вставляет в список L новый элемент E1 за каждым вхождением элемента Е.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru