SlideShare ist ein Scribd-Unternehmen logo
1 von 25
2- СТАТИЧЕСКИЕ СТРУКТУРЫ
ДАННЫХ
ПЛАН:
1.Классифицикация структуры данных.
2.Вектор.
3.Массив.
4.Запись.
Структуры данных классифицируются:
1. По связанности данных в структуре
- если данные в структуре связаны очень слабо, то такие
структуры называются несвязанными (вектор, массив, строки,
стеки)
- если данные в структуре связаны, то такие структуры
называются связанными (связанные списки)
2. По изменчивости структуры в процессе выполнения
программы
- статические структуры - структуры, неменяющиеся до конца
выполнения программы (записи, массивы, строки, вектора)
- полустатические структуры (стеки, деки, очереди)
- динамические структуры - происходит полное изменение при
выполнении программы
3. По упорядоченности структуры
- линейные (вектора, массивы, стеки, деки, записи)
- нелинейные (многосвязные списки, древовидные структуры,
графы)
Наиболее важной характеристикой является
изменчивость структуры в процессе выполнения
программы
Вектор- это чисто линейная
упорядоченная структура, где
отношение между ее элементами есть
строго выраженная
последовательность элементов
структуры
Вектор состоит из совершенно однотипных данных
и количество их строго определено.
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС
Основные статические структуры
данных. Векторы
Логическое и физическое представления:
Логически вектор представляет собой структуру данных с
фиксированным числом пронумерованных элементов одного и того
же типа.
Физически элементы вектора размещаются в ячейках памяти,
расположенных подряд. Необходимое число байтов памяти для
хранения одного элемента вектора называется слотом.
3,7 0,1 8,4 3,7
…
[1] [2] [n]
[3]
Основные статические структуры
данных. Векторы
Синтаксис описания вектора (PASCAL):
< Имя > : array [n..k] of < тип >;
где n-номер первого элемента, k-номер
последнего элемента. Представление в памяти
вектора будет такое, как показано на рисунке
далее.
Основные статические структуры
данных. Векторы
Синтаксис описания вектора (PASCAL): (продолжение)
Здесь @Имя – адрес вектора, Sizeof(тип) – размер слота,
(k-n)*Sizeof(тип) – смещение элемента с номером k.
Обращение к i-тому элементу вектора выполняется по адресу вектора
плюс смещение к данному элементу. Смещение i-ого элемента
вектора определяется по формуле
( i- n ) * Sizeof (тип),
а адрес его
@Имя + ( i- n ) * Sizeof(тип), где @Имя - адрес первого
элемента вектора.
 Каждый элемент вектора имеет свой индекс,
определяющий положение данного элемента в
векторе. Поскольку индексы являются целыми
числами, над ними можно производить операции
и, таким образом, вычислять положение элемента
в структуре на логическом уровне доступа. Для
доступа к элементу вектора, достаточно просто
указать имя вектора (элемента) и его индекс .
 Для доступа к этому элементу используется
функция адресации, которая формирует из
значения индекса адрес слота, где находится
значение исходного элемента. Для объявления в
программе вектора необходимо указать его имя,
количество элементов и их тип (тип данных)
Логическое и физическое представления:
Массивы
Логически массив представляет собой структуру данных с
фиксированным числом элементов одного типа, каждый из которых
имеет уникальный набор значений индексов. Количество индексов у
каждого элемента массива определяет его размерность.
Наиболее часто реализуемым способом физического размещения
многомерного массива является смежное представление (подобно
одномерному). В этом случае массив любой размерности
представляется, фактически, в виде вектора.
1
2
…
n
1 3
2 … k
Пример двумерного массива [1..n,1..k]:
физическое представление массива в виде вектора
Массивы
При таком представлении, например, адрес i, j
элемента двумерного массива, индексы которого
ограничены значениями [1, n][1, k] вычисляется
как
@Имя + j * Sizeof(тип)+ i * Sizeof(тип) * k,
где @Имя - адрес первого элемента массива.
@Имя +k*sizeof(тип) +2*k*sizeof(тип) +3*k*sizeof(тип) +k*n*sizeof(тип)
Размещение многомерных структур с помощью вектора Айлиффа:
Массивы
Для массива формируется набор дескрипторов,
называемых векторами Айлиффа. Каждый вектор
Айлиффа определённого уровня содержит
указатель на первые элементы векторов
Айлиффа более низкого уровня, а векторы
Айлиффа самого нижнего уровня содержат
указатели групп элементов отображаемого
массива. Основной дескриптор массива хранит
указатель вектора Айлиффа первого уровня.
Размещение многомерных структур с помощью
вектора Айлиффа: (продолжение)
Массивы
На рисунке приведена физическая структура двумерного
массива В[0..2,0..2], представленная по методу
Айлиффа.
Элемент массива - это элемент вектора,
который тоже является элементом данной
структуры
Примеры объявления массивов и
векторов:
 var
 M1: Array [1..100] of integer;
 M2: Array [1..10] of real;
 M3: Array [1..10, 1..5] of real;
 Для доступа к элементу двумерного массива
необходимы значения пары индексов (номер строки
и номер столбца, на пересечении которых
находится элемент). На физическом уровне
двумерный массив выглядит также, как и
одномерный (вектор), причем трансляторы
представляют массивы либо в виде строк, либо в
виде столбцов.
В С++ массив задаётся :
 инициализационный (напремер, массив: int
a[4]);
 неинициализационный (int a[]={2, 3, 4, 5}).
Логическое представление:
Записи
Логически запись - конечное упорядоченное множество полей,
характеризующихся различным типом. Записи являются чрезвычайно
удобным средством для представления программных моделей
реальных объектов, потому что, как правило, каждый такой объект
обладает набором свойств, характеризуемых данными различных
типов.
Пример:
Данные о клиентах
Фамилия
Год рождения
Имя
Записи
Физическое представление:
Физически запись может быть размещена в
памяти двумя способами. В первом случае,
подобно вектору, она представляет собой
последовательность полей, размещённых
смежно. Это дает экономию памяти, но лишнюю
трату времени на вычисление адресов полей
записи.
Записи
Физическое представление:
При другом способе в дескрипторе записи хранятся, наряду с
указателем на начало записи, указатели на значения полей записи
(аналогично организации массивов с помощью векторов Айлиффа).
При такой организации имеет место быстрое обращение к
элементам, но очень неэкономичный расход памяти для хранения.
Указатели
на поля
записи
Запись
Запись представляет из себя структуру
данных последовательного типа, где
элементы структуры расположены один за
другим как в логическом, так и в физическом
представлении. Запись предполагает
множество элементов разного типа.
Элемент записи может включать в себя записи. В этом
случае возникает сложная иерархическая структура
данных.
Логическая структура иерархической записи
1-ый уровень Студент = запись
2-ой уровень Номер
2-ой уровень Имя = запись
3-ий уровень Фамилия
3-ий уровень Имя
3-ий уровень Отчество
2-ой уровень Анкетные данные = запись
3-ий уровень Место рождения
3-ий уровень Год рождения
3-ий уровень Родители = запись
4-ый уровень Мать
4-ый уровень Отец
2-ой уровень Факультет
2-ой уровень Группа
2-ой уровень Оценки = запись
3-ий уровень Английский
3-ий уровень Физика
Операции над записями:
 Прочтение содержимого поля записи.
 Занесение информации в поле записи.
 Все операции, которые разрешаются над
полем записи, соответствующего типа.
Таблица - это конечный набор записей
При задании таблицы указывается
количество содержащихся в ней записей.
• Пример:
• Type ST = Record
• Num: Integer;
• Name: String[15];
• Fak: String[5];
• Group: String[10];
• Angl: Integer;
• Physic: Integer;
• var
• Table: Array [1..19] of St;
• Элементом данных таблицы является запись.
Поэтому операции, которые производятся с
таблицей - это операции, производимые с записью.
Операции с таблицами:
 Поиск записи по заданному ключу.
 Занесение новой записи в таблицу.
Ключ - это идентификатор записи. Для хранения
этого идентификатора отводится специальное
поле.
Составной ключ - ключ, содержащий более двух
полей.

Weitere ähnliche Inhalte

Ähnlich wie 2-СТАТИЧЕСКИЕ СТРУКТУРЫ.pptx

2. объекты
2. объекты2. объекты
2. объектыOdant
 
Практика_3_MDIB_Tanlanma_to’plam_va_statistik_xatolarni_aniqlash.ppt
Практика_3_MDIB_Tanlanma_to’plam_va_statistik_xatolarni_aniqlash.pptПрактика_3_MDIB_Tanlanma_to’plam_va_statistik_xatolarni_aniqlash.ppt
Практика_3_MDIB_Tanlanma_to’plam_va_statistik_xatolarni_aniqlash.pptJamshidJumaboyev1
 
Диаграмма классов
Диаграмма классовДиаграмма классов
Диаграмма классовDEVTYPE
 
ОСНОВНЫЕ ПРИНЦИПЫ РЕШЕНИЯ ЗАДАЧИ ПРЕОБРАЗОВАНИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО КОД...
ОСНОВНЫЕ ПРИНЦИПЫ РЕШЕНИЯ ЗАДАЧИ ПРЕОБРАЗОВАНИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО КОД...ОСНОВНЫЕ ПРИНЦИПЫ РЕШЕНИЯ ЗАДАЧИ ПРЕОБРАЗОВАНИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО КОД...
ОСНОВНЫЕ ПРИНЦИПЫ РЕШЕНИЯ ЗАДАЧИ ПРЕОБРАЗОВАНИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО КОД...ITMO University
 

Ähnlich wie 2-СТАТИЧЕСКИЕ СТРУКТУРЫ.pptx (7)

2. объекты
2. объекты2. объекты
2. объекты
 
Lecture 2
Lecture 2Lecture 2
Lecture 2
 
Алгоритмы поиска
Алгоритмы поискаАлгоритмы поиска
Алгоритмы поиска
 
Практика_3_MDIB_Tanlanma_to’plam_va_statistik_xatolarni_aniqlash.ppt
Практика_3_MDIB_Tanlanma_to’plam_va_statistik_xatolarni_aniqlash.pptПрактика_3_MDIB_Tanlanma_to’plam_va_statistik_xatolarni_aniqlash.ppt
Практика_3_MDIB_Tanlanma_to’plam_va_statistik_xatolarni_aniqlash.ppt
 
List - списки
List - списки List - списки
List - списки
 
Диаграмма классов
Диаграмма классовДиаграмма классов
Диаграмма классов
 
ОСНОВНЫЕ ПРИНЦИПЫ РЕШЕНИЯ ЗАДАЧИ ПРЕОБРАЗОВАНИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО КОД...
ОСНОВНЫЕ ПРИНЦИПЫ РЕШЕНИЯ ЗАДАЧИ ПРЕОБРАЗОВАНИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО КОД...ОСНОВНЫЕ ПРИНЦИПЫ РЕШЕНИЯ ЗАДАЧИ ПРЕОБРАЗОВАНИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО КОД...
ОСНОВНЫЕ ПРИНЦИПЫ РЕШЕНИЯ ЗАДАЧИ ПРЕОБРАЗОВАНИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО КОД...
 

2-СТАТИЧЕСКИЕ СТРУКТУРЫ.pptx

  • 1. 2- СТАТИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ ПЛАН: 1.Классифицикация структуры данных. 2.Вектор. 3.Массив. 4.Запись.
  • 2. Структуры данных классифицируются: 1. По связанности данных в структуре - если данные в структуре связаны очень слабо, то такие структуры называются несвязанными (вектор, массив, строки, стеки) - если данные в структуре связаны, то такие структуры называются связанными (связанные списки) 2. По изменчивости структуры в процессе выполнения программы - статические структуры - структуры, неменяющиеся до конца выполнения программы (записи, массивы, строки, вектора) - полустатические структуры (стеки, деки, очереди) - динамические структуры - происходит полное изменение при выполнении программы 3. По упорядоченности структуры - линейные (вектора, массивы, стеки, деки, записи) - нелинейные (многосвязные списки, древовидные структуры, графы) Наиболее важной характеристикой является изменчивость структуры в процессе выполнения программы
  • 3. Вектор- это чисто линейная упорядоченная структура, где отношение между ее элементами есть строго выраженная последовательность элементов структуры Вектор состоит из совершенно однотипных данных и количество их строго определено.
  • 4. © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Основные статические структуры данных. Векторы Логическое и физическое представления: Логически вектор представляет собой структуру данных с фиксированным числом пронумерованных элементов одного и того же типа. Физически элементы вектора размещаются в ячейках памяти, расположенных подряд. Необходимое число байтов памяти для хранения одного элемента вектора называется слотом. 3,7 0,1 8,4 3,7 … [1] [2] [n] [3]
  • 5. Основные статические структуры данных. Векторы Синтаксис описания вектора (PASCAL): < Имя > : array [n..k] of < тип >; где n-номер первого элемента, k-номер последнего элемента. Представление в памяти вектора будет такое, как показано на рисунке далее.
  • 6. Основные статические структуры данных. Векторы Синтаксис описания вектора (PASCAL): (продолжение) Здесь @Имя – адрес вектора, Sizeof(тип) – размер слота, (k-n)*Sizeof(тип) – смещение элемента с номером k. Обращение к i-тому элементу вектора выполняется по адресу вектора плюс смещение к данному элементу. Смещение i-ого элемента вектора определяется по формуле ( i- n ) * Sizeof (тип), а адрес его @Имя + ( i- n ) * Sizeof(тип), где @Имя - адрес первого элемента вектора.
  • 7.  Каждый элемент вектора имеет свой индекс, определяющий положение данного элемента в векторе. Поскольку индексы являются целыми числами, над ними можно производить операции и, таким образом, вычислять положение элемента в структуре на логическом уровне доступа. Для доступа к элементу вектора, достаточно просто указать имя вектора (элемента) и его индекс .  Для доступа к этому элементу используется функция адресации, которая формирует из значения индекса адрес слота, где находится значение исходного элемента. Для объявления в программе вектора необходимо указать его имя, количество элементов и их тип (тип данных)
  • 8. Логическое и физическое представления: Массивы Логически массив представляет собой структуру данных с фиксированным числом элементов одного типа, каждый из которых имеет уникальный набор значений индексов. Количество индексов у каждого элемента массива определяет его размерность. Наиболее часто реализуемым способом физического размещения многомерного массива является смежное представление (подобно одномерному). В этом случае массив любой размерности представляется, фактически, в виде вектора. 1 2 … n 1 3 2 … k Пример двумерного массива [1..n,1..k]:
  • 9. физическое представление массива в виде вектора Массивы При таком представлении, например, адрес i, j элемента двумерного массива, индексы которого ограничены значениями [1, n][1, k] вычисляется как @Имя + j * Sizeof(тип)+ i * Sizeof(тип) * k, где @Имя - адрес первого элемента массива. @Имя +k*sizeof(тип) +2*k*sizeof(тип) +3*k*sizeof(тип) +k*n*sizeof(тип)
  • 10. Размещение многомерных структур с помощью вектора Айлиффа: Массивы Для массива формируется набор дескрипторов, называемых векторами Айлиффа. Каждый вектор Айлиффа определённого уровня содержит указатель на первые элементы векторов Айлиффа более низкого уровня, а векторы Айлиффа самого нижнего уровня содержат указатели групп элементов отображаемого массива. Основной дескриптор массива хранит указатель вектора Айлиффа первого уровня.
  • 11. Размещение многомерных структур с помощью вектора Айлиффа: (продолжение) Массивы На рисунке приведена физическая структура двумерного массива В[0..2,0..2], представленная по методу Айлиффа.
  • 12. Элемент массива - это элемент вектора, который тоже является элементом данной структуры
  • 13. Примеры объявления массивов и векторов:  var  M1: Array [1..100] of integer;  M2: Array [1..10] of real;  M3: Array [1..10, 1..5] of real;  Для доступа к элементу двумерного массива необходимы значения пары индексов (номер строки и номер столбца, на пересечении которых находится элемент). На физическом уровне двумерный массив выглядит также, как и одномерный (вектор), причем трансляторы представляют массивы либо в виде строк, либо в виде столбцов.
  • 14. В С++ массив задаётся :  инициализационный (напремер, массив: int a[4]);  неинициализационный (int a[]={2, 3, 4, 5}).
  • 15. Логическое представление: Записи Логически запись - конечное упорядоченное множество полей, характеризующихся различным типом. Записи являются чрезвычайно удобным средством для представления программных моделей реальных объектов, потому что, как правило, каждый такой объект обладает набором свойств, характеризуемых данными различных типов. Пример: Данные о клиентах Фамилия Год рождения Имя
  • 16. Записи Физическое представление: Физически запись может быть размещена в памяти двумя способами. В первом случае, подобно вектору, она представляет собой последовательность полей, размещённых смежно. Это дает экономию памяти, но лишнюю трату времени на вычисление адресов полей записи.
  • 17. Записи Физическое представление: При другом способе в дескрипторе записи хранятся, наряду с указателем на начало записи, указатели на значения полей записи (аналогично организации массивов с помощью векторов Айлиффа). При такой организации имеет место быстрое обращение к элементам, но очень неэкономичный расход памяти для хранения. Указатели на поля записи Запись
  • 18. Запись представляет из себя структуру данных последовательного типа, где элементы структуры расположены один за другим как в логическом, так и в физическом представлении. Запись предполагает множество элементов разного типа.
  • 19.
  • 20. Элемент записи может включать в себя записи. В этом случае возникает сложная иерархическая структура данных.
  • 21. Логическая структура иерархической записи 1-ый уровень Студент = запись 2-ой уровень Номер 2-ой уровень Имя = запись 3-ий уровень Фамилия 3-ий уровень Имя 3-ий уровень Отчество 2-ой уровень Анкетные данные = запись 3-ий уровень Место рождения 3-ий уровень Год рождения 3-ий уровень Родители = запись 4-ый уровень Мать 4-ый уровень Отец 2-ой уровень Факультет 2-ой уровень Группа 2-ой уровень Оценки = запись 3-ий уровень Английский 3-ий уровень Физика
  • 22. Операции над записями:  Прочтение содержимого поля записи.  Занесение информации в поле записи.  Все операции, которые разрешаются над полем записи, соответствующего типа.
  • 23. Таблица - это конечный набор записей При задании таблицы указывается количество содержащихся в ней записей.
  • 24. • Пример: • Type ST = Record • Num: Integer; • Name: String[15]; • Fak: String[5]; • Group: String[10]; • Angl: Integer; • Physic: Integer; • var • Table: Array [1..19] of St; • Элементом данных таблицы является запись. Поэтому операции, которые производятся с таблицей - это операции, производимые с записью.
  • 25. Операции с таблицами:  Поиск записи по заданному ключу.  Занесение новой записи в таблицу. Ключ - это идентификатор записи. Для хранения этого идентификатора отводится специальное поле. Составной ключ - ключ, содержащий более двух полей.