Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 21.09.2016
Сообщений: 31

Вставить в непустой список L пару новых элементов E1 и E2 перед его последним элементом

31.05.2017, 21:10. Показов 1688. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вставить в непустой список L пару новых элементов E1 и E2 перед его последним элементом.Вот программа,не знаю как вставить элементы,со списками очень туго у меня
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
Program lab25; 
uses crt; 
type Tinf=integer; 
  List=^TList; 
  TList=record   
  data:TInf; 
  next:List; 
  end; 
var 
L, q , pbegin: list; 
i:integer;
 
procedure AddElem(var spis1:List;znach1:TInf); 
var 
 t : List; 
begin 
new(t); 
t^.data := znach1; 
while spis1^.next <> nil do spis1:= spis1^.next; 
spis1^.next:=t;
t^.next := nil; 
spis1 := t; 
 end; 
begin 
new(l);
l^.next:=nil;
pbegin:=l;
l^.data:=1; 
for i:=2 to 8 do addelem(l, i); 
q := pbegin; 
while q <> nil do 
begin 
write(q^.data:4); 
q := q^.next; 
end; 
writeln; 
readln; 
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.05.2017, 21:10
Ответы с готовыми решениями:

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

Процедура, которая вставляет в непустой список L пару новых элементов E1 и E2 перед его последним элементом
Здравствуйте! Подскажите пожалуйста что не так с процедурой последней, программа работает, данные записывает и выводит, но когда пользуюсь...

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

1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33394 / 21504 / 8236
Регистрация: 22.10.2011
Сообщений: 36,900
Записей в блоге: 12
03.06.2017, 12:33
Раз никто не отвечает - оставлю это здесь:
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
73
74
75
76
77
78
79
program lab25;
// uses crt; 
type
  Tinf = integer;
  List = ^TList;
  TList = record   
    data: TInf; 
    next: List; 
  end;
 
function Item(data: Tinf; next: List): List;
var
  t: List;
begin
  new(t);
  t^.data := data;
  t^.next := next;
  Item := t;
end;
 
procedure AddBeforeLast(var start: List; znach1: Tinf);
var
  t, p: List;
begin
  t := Item(znach1, nil);
 
  // рассматриваем три случая
  if start = nil then // 1) список пуст - самое простое: запомним новый элемент, как начало списка
  begin
    start := t;
  end else
  begin
    p := start;
    while (p^.next <> nil) and (p^.next^.next <> nil) do p := p^.next;
    if p^.next = nil then // 2) в списке один элемент - значит, надо поменять указатель на начало списка 
    begin
      t^.next := p;
      start := t
    end else // 3) в списке больше одного элемента - тут просто пошаманим с указателями, чтобы новый элемент добавился перед последним
    begin
      t^.next := p^.next;
      p^.next := t;
    end;
  end
  
end;
 
procedure AddElem(var start: List; znach1: TInf); // эта процедура всегда добавляет элемент к хвосту списка
var
  t, p: List;
begin
  t := Item(znach1, nil);
  if start = nil then start := t else 
  begin
    p := start;
    while p^.next <> nil do p := p^.next;
    p^.next := t;
  end;
end;
 
var
  q, pbegin: list; 
  i: integer;
 
begin
  pbegin := nil;
  for i := 1 to 8 do addelem(pbegin, i); // 1 2 3 4 5 6 7 8
  AddBeforeLast(pbegin, 20); // 1 2 3 4 5 6 7 20 8
  AddBeforeLast(pbegin, 22); // 1 2 3 4 5 6 7 20 22 8
  q := pbegin; 
  while q <> nil do 
  begin
    write(q^.data:4); 
    q := q^.next; 
  end; 
  writeln;
  // не забываем удалять выделенную ранее память
  readln; 
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.06.2017, 12:33
Помогаю со студенческими работами здесь

Линейный список - вставить пару новых элементов перед последним
#include &lt;conio.h&gt; #include &lt;iostream.h&gt; #include &lt;fstream.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; #include &lt;iomanip.h&gt; ...

Написать процедуру, которая вставляет в непустой список L новый элемент E перед его последним элементом
Помогите пожалуйста

Написать программу, которая вставляет в список L пару новых элементов F1 и F2 перед последним элементов
Создайте файл символов. Разместить элементы файла в динамической памяти. Написать программу, которая вставляет в список L пару новых...

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

Перед элементом массива с номером K вставить M новых элементов с нулевыми значениями
Дан массив размера N и два целых числа K и M (1 ≤ K ≤ N, 1 ≤ M ≤ 10). Перед элементом массива с номером K вставить M новых элементов с...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки 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. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru