удаление элемента из списка c



Автор Дима смольников задал вопрос в разделе Другие языки и технологии

Кольцевой список( удаление элемента) Удалить элемент наиболее удаленный от текущего. Когда в списке не 1 элемент и получил лучший ответ

Ответ от Jurii[гуру]
1) Если у тебя нигде не хранится длина списка, то нужно её посчитать:
Пусть Cur - указатель на текущий элемент списка, тогда
Size := 0; Tmp := Cur;
repeat
Tmp := Tmp^.Next; Inc(Size);
until Tmp = Cur;
2) Переменная Size хранит длину списка.
Значит при
- значении Size = 1 - список всего из одного элемента;
- чётном значении Size - удалять нужно (Size div 2)+1 элемент;
- нечётном значении Size - удалять нужно либо (Size div 2)+1, либо (Size div 2)+2 элемент, т. к. они равноудалены от текущего.
if Size > 1 then begin
DelPos := (Size div 2) + 1;
Tmp := Cur;
repeat
Pred := Tmp;
Tmp := Tmp^.Next;
until DelPos = 0;
{ Дошли до удаляемого элемента в Tmp, при этом Pred указывает на элемент перед ним }
Pred^.Next := Tmp^.Next; { Предыдущий в обход Tmp теперь будет переходить на следующий за Tmp }
Dispose(Tmp); { Удалили! }
end;

Ответ от Иван Вишневский[новичек]
Пробегись по списку один раз, пока не попадешь в начальную вершину, посчитай кол-во вершин. Подели на два и пройдись в одну сторону столько раз - это наиб. удаленная вершина. Потом перенаправь ссылки и удали вершину.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Кольцевой список( удаление элемента) Удалить элемент наиболее удаленный от текущего. Когда в списке не 1 элемент

Как узнать "Горячие" клавиши Windows?
Советую "виндос+D" - сворачивает и развораивает все окна, а вообще я в справке W2000 много находил.
подробнее...

Какие полезные комбинации клавиш Вы знаете???
Общие сведения о сочетаниях клавиш WindowsПри работе с Windows используйте сочетания клавиш вместо
подробнее...

Есть ли в Windows сочетание клавиш, чтобы свернуть одно активное окно?
Нажмите Действие
CTRL + C Копирование
CTRL + X Вырезание
CTRL + V Вставка
CTRL + Z
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
спросили в Другое Меню
Как удалить iTunes? У меня iTunes глючит, мне сказали удалить и снова установить. Не могу понять как удалить?
Удаление программы iTunes

Закройте программу iTunes.
В меню «Пуск» выберите пункт
подробнее...
спросили в Windows
Напишите, пожалуйста, какие комбинации клавиш есть в Windows 7.
держи
Итак, начнем.

1. Общие комбинации: (копирование, вырезание, вставка и др.
подробнее...

кто знает комбинацию клавишь для пользования компьтера без мышки
в любой винде есть справка по горячим клавишам, не советую их все запоминать, а то каша получится,
подробнее...

кто знает клавишные команды (hot keys) что бы рабоать без мышки?
Сочетания клавиш
Нажмите Действие
CTRL + C Копирование
CTRL + X Вырезание
CTRL
подробнее...
спросили в Железо
Пропал курсор мыши после обновления драйверов на Windows 10
Попробуй откатить через точку восстановления.

Player
Просветленныйподробнее...
спросили в Интернет
Уже второй день не работает Рамблер, Вконтакте. На Рамблере в почту тоже не могу зайти, пишет, что страница не найдена.
Добрый день.
Дя получения консультации ответьте пожалуйста на следующие вопросы:
1. Какая
подробнее...

Сочетание клавиш ?
ВСЕ есть тут ...
а некоторые вот:

Ctrl + клавиша («Ctrl+Delete»);
Alt +
подробнее...
спросили в Текст
Как с помощью клавиатуры Копировать текст?
Ctrl и C одновременно нажимаешь-текст копируется, потом CTRL и V одновременно-и текст вставляется
подробнее...

Умницы и умники... Подскажите... как удалить файл, минуя корзину???
Программа для удаления нежелательных приложений, установленных на вашем компьютере. Revo
подробнее...
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*