![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Юличка |
![]()
Сообщение
#1
|
Гость ![]() |
Помогите составить программу, которая вставляет в список L
новый элемент F перед первым вхождением элемента Е, если Е входит в L. Программа должна быть реализована с применением динамических переменных (указателей). |
hiv |
![]()
Сообщение
#2
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 660 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
Поиском надо пользоваться!
Здесь все есть: FAQ: Списки -------------------- Никогда не жадничай. Свои проблемы с любовью дари людям!
|
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Если список объявлен вот так:
Type то процедура, Цитата(Юличка @ 24.06.05 9:08) которая вставляет в список L новый элемент F перед первым вхождением элемента Е, если Е входит в L. , будет такой:procedure do_insert(x: integer); Все остальное, что необходимо для создания списка и его заполнения - здесь: FAQ: Динамические структуры данных - Списки |
НарКот |
![]()
Сообщение
#4
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Репутация: ![]() ![]() ![]() |
Юлечка. Посмотри-ка
Количество элементов можешь изменить по своему усмотрению (const N=14)!!! Исходный код Uses Crt; Type Spis=^L; L=record El: Word; Next: Spis end; Var A:array[1..15] of Spis; k,j,i,E,F:integer; q:char; const N=14; {===== =====} { данная функция ищет вхождение элемента Е в список, и при его наличии в нем вставляет впереди него элемент F } function Search(simb:integer):Spis; var i,j,k:integer; Begin k:=1; For i:=1 To N Do If A[i]^.El=E Then {проверка принадлежности элемента Е массиву данных } Begin For j:=N+1 DownTo i Do A[j]^.El:=A[j-k]^.El; {сдвиг элементов массива начиная с элемента Е} A[i]^.El:=F; {вправо на одну ячейку и запись} Inc(k); {на место элемента Е элемента F} Break; End; End; repeat ClrScr; TextColor(red); Randomize; WriteLn('Превоначальный список'); For i:=1 To N Do New(A[i]); {Резервируем фрагменты кучи} A[N+1]^.El:=0; {последнему элементу для удобства присваиваем 0} For i:=1 To N Do Begin A[i]^.El:=Random(15); WriteLn('*',A[i]^.El) End; A[N+1]^.Next:=Nil; {Стираем последний указатель } {===== =====} TextColor(blue); Write(' Введите элемент списка Е= '); ReadLn(E); Write('Введите вставляемый в список элемент F= '); ReadLn(F); {===== =====} Search(E); TextColor(yellow); WriteLn('Модифицированный список имеет вид: '); For i:=1 To (N+1) Do WriteLn('*',A[i]^.El); WriteLn('Повторить ЕЩЕ?(Y/N)'); q:=ReadKey; until not (q in ['Y','y']); End. |
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
НарКот, вообще-то здесь стараются НЕ давать полностью готовых решений, тем более - того, что можно найти в FAQ-е...
И уж совсем желательно воздерживаться от реализации списков через массивы, ты теряешь все их преимущества... |
Altair |
![]()
Сообщение
#6
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
НарКот, более того, реализовать список на массивах просто невозможно.
Это будет обычный массив. Вот на спиках и массивах уже можно организовывать различные АТД (абстрактые типы данных по терминологии А. Ахо), такие как стек, очередь, дерево, дек и другие. Поскольку для них важны правила доступа к элементам АТД, а не реализация самих данных... -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Катюша |
![]()
Сообщение
#7
|
Гость ![]() |
а какой список нужно?
я могу попробовать :yessss: Да, в принципе, пробовать-то нечего... Читаем ВНИМАТЕЛЬНО пост №3 (и идем по ссылке, там ВСЕ реализовано уже давным-давно...), кому-то так охота создать свой велосипед? Сообщение отредактировано: volvo - 25.06.2005 0:42 |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 2:18 |