34 / 34 / 21
Регистрация: 01.11.2013
Сообщений: 319
1

Добавление элемента в начало односвязного списка

22.11.2014, 17:34. Показов 2474. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, может есть у кого то процедура, добавления элемента в начало списка(указатель стоит не на первом элементе списка), поделитесь пожалуйста. Буду очень благодарен.
Delphi
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
type
  TData = Integer;
  TPElem = ^TElem;
  TElem = record
    Data : TData;
    PNext : TPElem;
  end;
 
  procedure AddFirst(var aPList : Telem; const aData : TData);
  begin
    //....
  end;
 
//Добавление элемента в конец списка.
procedure AddL(var aPList : TPElem; const aData : TData);
var
  PElem, PEnd : TPElem;
begin
  PEnd := nil;
  PElem := aPList;
  while PElem <> nil do begin
    PEnd := PElem;
    PElem := PElem^.PNext;
  end;
  New(PElem);
  PElem^.Data := aData;
  PElem^.PNext := nil;
  if PEnd = nil then
    aPList := PElem
  else
    PEnd^.PNext := PElem;
end;
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.11.2014, 17:34
Ответы с готовыми решениями:

Описать процедуру удаления последнего элемента непустого односвязного списка, заданного указателем на его начало
Помогите с 2 задачами. Описать процедуру удаления последнего элемента непустого односвязного...

Добавление элемента в начало списка
Procedure AddToEnd(i:integer; var head:Tlist); //добавление элемента в конец списка i-...

Добавление минимального элемента в начало списка
Имеется список, элементами которого являются вещественные числа. Создать консольное приложение,...

Добавление элемента в начало односвязного списка
Здравствуйте, я не где не могу найти функцию по добавлению элемента в начало односвязного списка....

5
13097 / 5878 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
22.11.2014, 17:56 2
Цитата Сообщение от kozak95 Посмотреть сообщение
Здравствуйте, может есть у кого то процедура, добавления элемента в начало списка (указатель стоит не на первом элементе списка)
Если в односвязанном списке указатель на первый элемент неизвестен, то этот элемент потерян (утечка памяти). Вернее, будут утеряны все элементы, которые идут до того элемента, на который указатель известен.

Если всё же указатель на первый элемент списка известен, то процедура добавления нового элемента в начало списка может быть такой:
Delphi
1
2
3
4
5
6
7
8
9
10
//Добавление элемента в начало списка.
procedure AddF(var aPList : TPElem; const aData : TData);
var
  PElem : TPElem;
begin
  New(PElem);
  PElem^.Data := aData;
  PElem^.PNext := aPList;
  aPList := PElem;
end;
0
34 / 34 / 21
Регистрация: 01.11.2013
Сообщений: 319
22.11.2014, 17:58  [ТС] 3
А если условие такое, то какой это список может быть?
Задано числа D1 та D2 та вказівник P0 на один з елементів непорожнього списку (не перший та не останній). Додати до початку списка новий елемент зі значенням D1, а у кінець — новий елемент зі значенням D2. Вивести список до та після модифікації.
0
34 / 34 / 21
Регистрация: 01.11.2013
Сообщений: 319
22.11.2014, 18:00  [ТС] 4
Проект такой получился:
Вложения
Тип файла: zip KR1.zip (202.9 Кб, 29 просмотров)
0
13097 / 5878 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
22.11.2014, 18:11 5
Лучший ответ Сообщение было отмечено kozak95 как решение

Решение

В проект надо добавить процедуру AddF() и добавить ещё одну кнопку - её обработчик написать так же, как для Button1. Только там вместо AddL() использовать AddF(). - По этой кнопке элементы будут добавляться в начало списка.
1
34 / 34 / 21
Регистрация: 01.11.2013
Сообщений: 319
22.11.2014, 18:28  [ТС] 6
Cпасибо)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2014, 18:28
Помогаю со студенческими работами здесь

Вставка элемента в начало односвязного списка
Помогите вставить элемент в начало односвязного списка. Написана функция Insert, но она работает...

Добавление элемента в конец односвязного списка
Добрый день. Помогите решить проблему с ошибкой в функции AddItem. CPP файл #include &quot;stdafx.h&quot;...

Добавление нового элемента в конец односвязного списка
Здравствовать всем ! Заклинило меня на одной ,довольно простой задаче. Есть код реализации...

Добавление элемента в конец односвязного списка - ошибка
Всем привет! Собственно, задача такая: написать функцию, добавляющую элемент в конец связного...

Добавление элемента в начало списка
Проблема в том, что выводит 100, 9. Почему не выводит промежуточные значения - не понятно. Вроде бы...

Добавление элемента в начало списка ListView
Добрый день! Подскажите, пожалуйста, как добавить элемент в начало списка TreeView? В вариантах...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru