Вопрос № 31357: Здравствуйте, Уважаемые Эксперты!
Прошу вашей помощи в следующей задаче:
Имеется динамическая структура, состоящая из чисел (пользователь сам задает кол-во чисел и заполняет динамическую структуру). Затем программа запрашивает число (назовем ...Вопрос № 31358: Здравствуйте, Уважаемые Эксперты!
Прошу вашей помощи в следующей задаче:
Имеется динамическая структура, состоящая из чисел (пользователь сам задает кол-во чисел и заполняет динамическую структуру). Затем программа запрашивает число (назовем ...
Вопрос № 31.357
Здравствуйте, Уважаемые Эксперты!
Прошу вашей помощи в следующей задаче:
Имеется динамическая структура, состоящая из чисел (пользователь сам задает кол-во чисел и заполняет динамическую структуру). Затем программа запрашивает число (назовем его "X") у пользователя. После этого программа сверяет X с каждым элементом структуры. Если элемент меньше X, то программа дублирует этот элемент, смещая последующие элементы структуры.
Например:
[][]--->[1][]--->[3][]--->[5][]--->[7][/];
Вводится X.
Допустим X=4
Результат должен быть таким:
[][]--->[1][]--->[1][]--->[3][]--->[3][]--->[5][]--->[7][/]
Как это реализовать с помощью динамической структуры?
Загвоздка в том, как сместить элементы динамической структуры?
Отвечает: sir henry
Здравствуйте, Иванов Евгений Андреевич!
В Паскале есть изумительный объект, который специально создан для работы с динамическими данными, называется TCollection. В нем есть все неоходимые методы для работы: вставка, удаление и т.п. Используйте его.
TCollection.AtInsert(Index: Integer; Item: Pointer);
Здесь Index - номер индекса, куда нужно вставить новый пункт, Item - это указатель на данные, которые Вы вставляете.
Пробежаться по всей коллекции можно так:
For i:=0 To Collection1.Count-1 Do
If Collection1.Item^
Collection1.AtInsert(i. Collection1.Item);
Ответ отправил: sir henry (статус: Академик)
Отправлен: 13.12.2005, 05:11
Отвечает: Маренич Владимир
Здравствуйте, Иванов Евгений Андреевич!
Вы не уточнили, какая динамическая структура используется: одно- или двусвязный список? Вот пример, как это сделать с односвязным
Приложение:
Ответ отправил: Маренич Владимир (статус: 9-ый класс)
Отправлен: 13.12.2005, 11:37
Вопрос № 31.358
Здравствуйте, Уважаемые Эксперты!
Прошу вашей помощи в следующей задаче:
Имеется динамическая структура, состоящая из чисел (пользователь сам задает кол-во чисел и заполняет динамическую структуру). Затем программа запрашивает число (назовем его "X") у пользователя. После этого программа сверяет X с каждым элементом структуры. Если элемент меньше X, то программа дублирует этот элемент, смещая последующие элементы структуры.
Например:
[][]--->[1][]--->[3][]--->[5][]--->[7][/];
Вводится X.
Допустим X=4
Результат должен быть таким:
[][]--->[1][]--->[1][]--->[3][]--->[3][]--->[5][]--->[7][/]
Как это реализовать с помощью динамической структуры?
Загвоздка в том, как сместить элементы динамической структуры?
Отвечает: Romodos
Здравствуйте, Иванов Евгений Андреевич!
Ну вообще-то не надо ничего сдвигать.
Просто надо между двумя элементами встроить третий.
Надо воспользоваться динамическими списками.
т.е. вот описание элемента. Когда нашли элемент y,то
ссылку y->next переправляем на новый,а новый->next переправляем на следующий
элемент
type
plist=^list;
list=record;
a:integer;
next:plist;
end;
Вообще работа со списками уже описывалась. Поищите в архиве.
--------- FAQ me off!
Ответ отправил: Romodos (статус: Студент)
Отправлен: 13.12.2005, 14:36