![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 09.03.2009
Сообщений: 20
|
![]()
Помогите решить.
Напишите функцию, вставляющую дополнительный элемент после указанного узла. Заранее спасибо за помощь. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 09.03.2009
Сообщений: 20
|
![]()
Неужели никто не знает?
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
знают.. Вы не поверите, но тут очень многие знают, как это сделать!!
А в чём собственно проблема?! Это же элементарно!! находите нужный узел.( пусть будет Destination), ссылку из него пишете в свой новый элемент (NewElement.Next := Destination.Next), а в него - ссылку на новый (Destination.Next := NewElement) всё. А если вышесказанное непонятно (или у Вас список двухнаправленныей или организован по другому) - давайте Ваши наработки... поможем. |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 09.03.2009
Сообщений: 20
|
![]()
Есть вот програмка по удалению 5 элемента. Вот на ее базе и надо сделать функцию, вставляющую дополнительный элемент после указанного узла.
Program Labolator_01; uses crt; type List=^node; node=record info:real; next:List; end; var L,six,one:List; i,n,par:integer; e:real; procedure Form(elem:real;var L:List); begin if L<>nil then Form(elem,L^.next) else begin New(L); L^.info:=elem; L^.next:=nil; end; end; procedure Print(L:List); begin while L<>nil do begin write(L^.info:0:2,' '); L:=L^.next; end; writeln('<---'); end; procedure del(L:List); begin par:=1; while L<>nil do begin if par=4 then begin L^.next:=L^.next^.next; end; L:=L^.next; par:=par+1; end; end; BEGIN par:=1; clrscr; randomize; write('n='); readln(n); for i:=1 to n do Form(10*random,L); Print(L); del(L); Print(L); writeln; readln; END. |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
повторю вопрос - и что Вам непонятно?! я же привёл алгоритм! (и даже имя поля совпало!
![]() Очень сильно подозреваю, что программку взяли у одногруппника и ничего в ней не понимаете... ;( не хотите/не можете делать сами - тогда Вам легко сделают это за деньги. Но, честно говоря, тут дел минут на 15... Да и Вам же больше пользы будет. Делаете так: 1) ввод номера требуемого узла (ну, или значения поля info - как Вы там будете определять, какой узел заданный - Ваше дело...) 2) перебор данных и находите заданный узел. если не нашли - сообщение и выход! 2) запрос о сохраняемых данных (чему будет равно поле info) 3) по вышеуказанному алгоритму добавляете запись и вставляете её после найденного узла. всё. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Турбо паскаль | Ильшатиккк | Фриланс | 14 | 16.09.2009 11:57 |
Турбо Паскаль | Maxsimo | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 06.05.2009 17:05 |
Турбо паскаль | Gabi | Помощь студентам | 2 | 24.12.2008 22:18 |
Турбо Паскаль | Jondeer | Помощь студентам | 3 | 28.10.2007 12:42 |
Турбо Паскаль | Jondeer | Помощь студентам | 5 | 27.10.2007 17:19 |