SlideShare a Scribd company logo
1 of 15
Списки
(линейные однонаправленные)


            © Исакова В.В., кафедра ИВТ
Содержание
• Назначение
• Основные положения
• Представление элементов списка
• Операции над элементами списка
• Операции над списками




                               Выход
Список, как динамическая структура
данных, применяется в тех случаях, когда
трудно или вообще невозможно
предсказать число
объектов, обрабатываемых программой, и
поэтому традиционные структуры данных
(например, массивы), для которых
требуется заранее определить
максимальное количество
элементов, неприменимы.


 Содержание                        Далее
first     inf next   inf next   inf next
                                         nil

             Основные положения
• Все элементы списка имеют один тип.
• Они должны иметь информационную часть
  (данные) и указатель на следующий элемент.
• На первый элемент списка должен ссылаться
  указатель, который и определяет имя списка.
• Поле-указатель последнего элемента
  однонаправленного линейного списка должен
  равняться nil.
• Число элементов списка называется его
  длиной и заранее не определено.
• Список, не имеющий элементов, называется
  пустым (first = nil).
Содержание                               Далее
Для представления элементов списка
 используется комбинированный тип данных -
                         ЗАПИСИ
   type <тип указателя> = ^ <тип элемента>;
         <тип элемента> = record
                  <имя поля 1> : <тип поля 1>;
  информационная  <имя поля 2> : <тип поля 2>;
       часть
                          . . .
                  <имя поля N> : <тип поля N>;
    указатель на
 следующий элемент   <имя поля-указателя> : <тип указателя>;
          end;
Здесь используется рекурсивное описание типов.
Пример
  Содержание                                         Далее
ПРИМЕР

type elsp = ^ elem;
    elem = record
       inf : integer;
       next : elsp;
    end;
var first : elsp;



Содержание                   Далее
Операции над элементами списка
Доступ к первому элементу осуществляется через
указатель на список.
   first ^.inf : = 5;
   if first ^.next < > nil
     then first ^.next^.inf := 12;


                   inf   next    inf   next   inf   next
     first



  Содержание                                          Далее
Операции над элементами списка
Для доступа ко всем элементам списка (включая
и первый) можно использовать указатель, роль
которого – ссылаться на текущий элемент.
   var first, tek : elsp;
begin
   {рассматривается список из предыдущего примера}
   tek : = first;
   tek^.inf : = 51;
   tek : = tek^.next; переход к следующему элементу
   tek^.inf : = 21;
              inf   next   inf next     inf   next
   first      5
              51            12
                            21

  tek
 Содержание                                     Далее
Операции над списками
• Создание списка
• Вывод списка
• Поиск элементов
• Удаление элементов
• Сортировка списка




                       Содержание
Создание списка
Два варианта:
- последовательное добавление элементов друг за
другом, начиная с первого (добавление в конец);
- создание упорядоченного списка (поиск и
добавление).
При заполнении информационной части элементов
списка данные могут:
а) вводиться с клавиатуры;
б) считываться из файла;
в) вычисляться.

Задание
 Содержание                              Далее
Создание списка
                    Задание
Создать список из N элементов путем
последовательного добавления элементов друг
за другом.
Ожидаемый результат:
 Пусть N = 4




                                       nil
        first   7    3      8      5

Указания:
1. Данные вводятся с клавиатуры.
2. Разработать функцию создания списка из N
элементов.
  Содержание                                 Далее
Вывод списка
Положения:
- на экран выводится непустой список;
- список выводится поэлементно;
- условие окончания процесса – вывод последнего
элемента (количество элементов не известно).
Задание: Разработать процедуру вывода списка на
экран




 Содержание                             Далее
Поиск элементов
Два варианта поиска:
- поиск всех элементов, удовлетворяющих заданному
условию;
- поиск одного элемента, удовлетворяющего заданному
условию.
Значение для условия поиска может быть:
а) задано как константа;
б) введено с клавиатуры;
в) вычислено;
г) равно значению одного из элементов.
Способы обработки найденных элементов:
а) вывод на экран или в файл;
б) редактирование;
в) подсчет количества.
 Содержание                                   Далее
Поиск всех элементов

                    Задание
Разработать алгоритм поиска в списке всех
элементов, больших заданного значения key.




                                           nil
first     35   10      81      54      7

Указания:
1. Разработать функцию поиска всех элементов
списка, удовлетворяющих заданному условию.
2. Значение key задается в основной программе.
3. Проверка факта нахождения элементов
осуществляется в основной программе.

  Содержание                               Далее
Поиск одного элемента

                    Задание
Разработать алгоритм поиска в списке одного
элемента, равного заданному значению key.




                                          nil
first     35   10       81    54      7

Указания:
1. Разработать функцию поиска элемента списка,
удовлетворяющего заданному условию.
2. Значение key задается в основной программе.
3. Проверка факта нахождения элемента и его
возможная обработка осуществляется в основной
программе.
  Содержание                              Далее

More Related Content

Viewers also liked

Apresentação Euroban
Apresentação EurobanApresentação Euroban
Apresentação EurobanAleixo7
 
eoi sevilla halloween 2009
eoi sevilla halloween 2009eoi sevilla halloween 2009
eoi sevilla halloween 2009ggttcanciones
 
Gli arsenali come culla della cultura politecnica (Vittorio Marchis)
Gli arsenali come culla della cultura politecnica (Vittorio Marchis)Gli arsenali come culla della cultura politecnica (Vittorio Marchis)
Gli arsenali come culla della cultura politecnica (Vittorio Marchis)CISRE Venice
 
Somos MilGrados
Somos MilGradosSomos MilGrados
Somos MilGradosMilgrados
 
Vou reabilitar o trabalho
Vou reabilitar o trabalhoVou reabilitar o trabalho
Vou reabilitar o trabalhoNádia Souza
 
Tutorial - Atualização do perfil myspace
Tutorial - Atualização do perfil myspaceTutorial - Atualização do perfil myspace
Tutorial - Atualização do perfil myspacemyspace Brasil
 
Matemàtiques de neptú 1 (diapositives color)
Matemàtiques de neptú 1 (diapositives color)Matemàtiques de neptú 1 (diapositives color)
Matemàtiques de neptú 1 (diapositives color)ma-hu
 
Silvya&Mayte
Silvya&MayteSilvya&Mayte
Silvya&Maytesiilvyaa7
 
Super animal
Super animalSuper animal
Super animalabufton19
 
Anúncio Público de Terminais de Uso Privado
Anúncio Público de Terminais de Uso PrivadoAnúncio Público de Terminais de Uso Privado
Anúncio Público de Terminais de Uso PrivadoPalácio do Planalto
 
El amor de la condesa
El amor de la condesaEl amor de la condesa
El amor de la condesaNancy Guzman
 
Dispositivos de proceso de información
Dispositivos de proceso de informaciónDispositivos de proceso de información
Dispositivos de proceso de informaciónJeimmy19
 

Viewers also liked (16)

Hallowen in my head
Hallowen in my headHallowen in my head
Hallowen in my head
 
Apresentação Euroban
Apresentação EurobanApresentação Euroban
Apresentação Euroban
 
eoi sevilla halloween 2009
eoi sevilla halloween 2009eoi sevilla halloween 2009
eoi sevilla halloween 2009
 
Tal
TalTal
Tal
 
Gli arsenali come culla della cultura politecnica (Vittorio Marchis)
Gli arsenali come culla della cultura politecnica (Vittorio Marchis)Gli arsenali come culla della cultura politecnica (Vittorio Marchis)
Gli arsenali come culla della cultura politecnica (Vittorio Marchis)
 
Somos MilGrados
Somos MilGradosSomos MilGrados
Somos MilGrados
 
Vou reabilitar o trabalho
Vou reabilitar o trabalhoVou reabilitar o trabalho
Vou reabilitar o trabalho
 
Tutorial - Atualização do perfil myspace
Tutorial - Atualização do perfil myspaceTutorial - Atualização do perfil myspace
Tutorial - Atualização do perfil myspace
 
Matemàtiques de neptú 1 (diapositives color)
Matemàtiques de neptú 1 (diapositives color)Matemàtiques de neptú 1 (diapositives color)
Matemàtiques de neptú 1 (diapositives color)
 
Tarea 8
Tarea 8Tarea 8
Tarea 8
 
Silvya&Mayte
Silvya&MayteSilvya&Mayte
Silvya&Mayte
 
Super animal
Super animalSuper animal
Super animal
 
Bases fisiologicas
Bases fisiologicasBases fisiologicas
Bases fisiologicas
 
Anúncio Público de Terminais de Uso Privado
Anúncio Público de Terminais de Uso PrivadoAnúncio Público de Terminais de Uso Privado
Anúncio Público de Terminais de Uso Privado
 
El amor de la condesa
El amor de la condesaEl amor de la condesa
El amor de la condesa
 
Dispositivos de proceso de información
Dispositivos de proceso de informaciónDispositivos de proceso de información
Dispositivos de proceso de información
 

Similar to списки (2008)

Алгоритмы и структуры данных весна 2014 лекция 1
Алгоритмы и структуры данных весна 2014 лекция 1Алгоритмы и структуры данных весна 2014 лекция 1
Алгоритмы и структуры данных весна 2014 лекция 1Technopark
 
01 линейные структуры данных
01 линейные структуры данных01 линейные структуры данных
01 линейные структуры данныхFedor Tsarev
 
291 цикл уроков на тему массивы
291 цикл уроков на тему  массивы291 цикл уроков на тему  массивы
291 цикл уроков на тему массивыsany0507
 

Similar to списки (2008) (6)

лекция 5
лекция 5лекция 5
лекция 5
 
Алгоритмы и структуры данных весна 2014 лекция 1
Алгоритмы и структуры данных весна 2014 лекция 1Алгоритмы и структуры данных весна 2014 лекция 1
Алгоритмы и структуры данных весна 2014 лекция 1
 
01 линейные структуры данных
01 линейные структуры данных01 линейные структуры данных
01 линейные структуры данных
 
291 цикл уроков на тему массивы
291 цикл уроков на тему  массивы291 цикл уроков на тему  массивы
291 цикл уроков на тему массивы
 
Collections
CollectionsCollections
Collections
 
Алгоритмы поиска
Алгоритмы поискаАлгоритмы поиска
Алгоритмы поиска
 

списки (2008)

  • 1. Списки (линейные однонаправленные) © Исакова В.В., кафедра ИВТ
  • 2. Содержание • Назначение • Основные положения • Представление элементов списка • Операции над элементами списка • Операции над списками Выход
  • 3. Список, как динамическая структура данных, применяется в тех случаях, когда трудно или вообще невозможно предсказать число объектов, обрабатываемых программой, и поэтому традиционные структуры данных (например, массивы), для которых требуется заранее определить максимальное количество элементов, неприменимы. Содержание Далее
  • 4. first inf next inf next inf next nil Основные положения • Все элементы списка имеют один тип. • Они должны иметь информационную часть (данные) и указатель на следующий элемент. • На первый элемент списка должен ссылаться указатель, который и определяет имя списка. • Поле-указатель последнего элемента однонаправленного линейного списка должен равняться nil. • Число элементов списка называется его длиной и заранее не определено. • Список, не имеющий элементов, называется пустым (first = nil). Содержание Далее
  • 5. Для представления элементов списка используется комбинированный тип данных - ЗАПИСИ type <тип указателя> = ^ <тип элемента>; <тип элемента> = record <имя поля 1> : <тип поля 1>; информационная <имя поля 2> : <тип поля 2>; часть . . . <имя поля N> : <тип поля N>; указатель на следующий элемент <имя поля-указателя> : <тип указателя>; end; Здесь используется рекурсивное описание типов. Пример Содержание Далее
  • 6. ПРИМЕР type elsp = ^ elem; elem = record inf : integer; next : elsp; end; var first : elsp; Содержание Далее
  • 7. Операции над элементами списка Доступ к первому элементу осуществляется через указатель на список. first ^.inf : = 5; if first ^.next < > nil then first ^.next^.inf := 12; inf next inf next inf next first Содержание Далее
  • 8. Операции над элементами списка Для доступа ко всем элементам списка (включая и первый) можно использовать указатель, роль которого – ссылаться на текущий элемент. var first, tek : elsp; begin {рассматривается список из предыдущего примера} tek : = first; tek^.inf : = 51; tek : = tek^.next; переход к следующему элементу tek^.inf : = 21; inf next inf next inf next first 5 51 12 21 tek Содержание Далее
  • 9. Операции над списками • Создание списка • Вывод списка • Поиск элементов • Удаление элементов • Сортировка списка Содержание
  • 10. Создание списка Два варианта: - последовательное добавление элементов друг за другом, начиная с первого (добавление в конец); - создание упорядоченного списка (поиск и добавление). При заполнении информационной части элементов списка данные могут: а) вводиться с клавиатуры; б) считываться из файла; в) вычисляться. Задание Содержание Далее
  • 11. Создание списка Задание Создать список из N элементов путем последовательного добавления элементов друг за другом. Ожидаемый результат: Пусть N = 4 nil first 7 3 8 5 Указания: 1. Данные вводятся с клавиатуры. 2. Разработать функцию создания списка из N элементов. Содержание Далее
  • 12. Вывод списка Положения: - на экран выводится непустой список; - список выводится поэлементно; - условие окончания процесса – вывод последнего элемента (количество элементов не известно). Задание: Разработать процедуру вывода списка на экран Содержание Далее
  • 13. Поиск элементов Два варианта поиска: - поиск всех элементов, удовлетворяющих заданному условию; - поиск одного элемента, удовлетворяющего заданному условию. Значение для условия поиска может быть: а) задано как константа; б) введено с клавиатуры; в) вычислено; г) равно значению одного из элементов. Способы обработки найденных элементов: а) вывод на экран или в файл; б) редактирование; в) подсчет количества. Содержание Далее
  • 14. Поиск всех элементов Задание Разработать алгоритм поиска в списке всех элементов, больших заданного значения key. nil first 35 10 81 54 7 Указания: 1. Разработать функцию поиска всех элементов списка, удовлетворяющих заданному условию. 2. Значение key задается в основной программе. 3. Проверка факта нахождения элементов осуществляется в основной программе. Содержание Далее
  • 15. Поиск одного элемента Задание Разработать алгоритм поиска в списке одного элемента, равного заданному значению key. nil first 35 10 81 54 7 Указания: 1. Разработать функцию поиска элемента списка, удовлетворяющего заданному условию. 2. Значение key задается в основной программе. 3. Проверка факта нахождения элемента и его возможная обработка осуществляется в основной программе. Содержание Далее