Uploaded by nataliya12041978

Информатика и информационные технологии РК

advertisement
Итоговый контроль
по дисциплине «Информатика и информационные технологии»
Москва 2020
12.Линейные списки и очереди.
Из динамических структур в программах чаще всего используются
линейные списки, стеки, очереди и бинарные деревья. Они различаются
способами связи отдельных элементов и допустимыми операциями.
Линейные списки. Самый простой способ связать множество элементов —
сделать так, чтобы каждый элемент содержал ссылку на следующий. Такой
список называется однонаправленным (односвязным). Если добавить в
каждый элемент вторую ссылку — на предыдущий элемент, получится
двунаправленный список (двусвязный), если последний элемент связать
указателем с первым, получится кольцевой список.
Каждый элемент списка содержит ключ, идентифицирующий этот
элемент. Ключ обычно бывает либо целым числом, либо строкой и является
частью поля данных. В качестве ключа в процессе работы со списком могут
выступать разные части поля данных (ключи разных элементов списка могут
совпадать).
struct Node{ 1nt d; Node *next; Node *prev; };
Рассмотрим двунаправленный линейный список. Для формирования
списка и работы с ним требуется иметь по крайней мере один указатель — на
начало списка. Удобно завести еще один указатель — на конец списка.
Допустим, что список состоит из целых чисел, то есть описание элемента
списка выглядит следующим образом:
Стек — это частный случай однонаправленного списка, добавление
элементов в который и выборка из которого выполняются с одного конца,
называемого вершиной стека. При выборке элемент исключается из стека.
Функция помещения в стек по традиции называется push, а выборки —
pop. Указатель для работы со стеком (top) всегда ссылается на его вершину.
Пример кода программы
#1ncludestruct Nocle{ 1nt d; Node *p; }; Node * firstdnt d); void pushCNode
**top. intd); intpop(Node **top);
Очередь — это частный случай однонаправленного списка, добавление
элементов в который выполняется в один конец, а выборка — из другого
конца. В программировании очереди применяются, например, при
моделировании,
диспетчеризации
задач
операционной
системой,
буферизованном вводе/выводе.
24. Базовые типы данных и ссылочные типы.
Базовые типы данных – это любые типы данных, заданные в системах
управления базами данных изначально, т. е. присутствующие там по
умолчанию (в отличие от пользовательского типа данных, который мы
проанализируем сразу после прохождения типа данных базового).
Прежде чем перейти к рассмотрению собственно базовых типов данных,
перечислим, каких типов данные вообще бывают:
1) числовые данные;
2) логические данные;
3) строковые данные;
4) данные, определяющие дату и время;
5) идентификационные данные.
Типы данных в
C#
можно
разделить
на типы-значения
( value type ) и ссылочные типы ( reference type ). В первую очередь они
отличаются схемой наследования, местом размещения и представлением.
Каждая переменная в Java имеет тип данных, которые разделены на две
группы:
 Примитивные.
 Ссылки.
Переменная занимает некоторое место в памяти в зависимости от ее типа
данных.
Примитив содержит значение переменной непосредственно в памяти,
выделенной для нее. Например, число или символ.
Ссылочный типа отличается еще называется ссылкой. Не содержит объект,
но содержит ссылку на него, которая указывает на другое место в памяти, где
он хранится. Через такую ссылку можете получить доступ к полям и методам
ссылочного объекта. Допустимо иметь много разных переменных,
ссылающихся на один и тот же объект. Это невозможно с примитивами.
Ссылочные переменные хранят адрес ячейки памяти, в которой
расположен определенный объект. То есть это “визитка” с адресом, имея
которую мы можем найти наш объект в общей памяти и выполнять с ним
некоторые манипуляции. Ссылка на любой объект в Java представляет собой
ссылочную переменную. Как бы это выглядело с нашим объектом
телевизора:
TV telly = new TV();
Переменной типа TV с именем telly мы задаем ссылку на создаваемый объект
типа TV. То есть, JVM выделяет память в куче под объект TV, создает его и
адрес на его местоположение в памяти, кладется в переменную telly, которая
хранится в стеке.
Ссылочные переменные создаются с использованием определенных
конструкторов классов. Они предназначены для доступа к объектам. Эти
переменные объявляются с определенным типом, который не может быть
изменен. Например, Employee, Puppy и т.д.
Объекты класса и различные виды переменных массива подпадают
под ссылочный тип данных.
По умолчанию в Java значение любой переменной ссылки - null.
Ссылочная переменная может применяться для обозначения любого
объекта, объявленного или любого совместимого типа.
Download