Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Структуры и алгоритмы обработки данных.doc
Скачиваний:
365
Добавлен:
12.03.2015
Размер:
1.81 Mб
Скачать

1.4. Контрольные вопросы по теме

  1. Что включает в себя понятие структуры данных?

  2. Назовите основные линейные структуры данных и их разновидности

  3. Назовите основные нелинейные структуры данных и их разновидности

  4. В чем состоят отличия статического и динамического распределения памяти?

  5. Что такое переменные ссылочного типа (указатели)?

  6. Что включает описание переменных-указателей?

  7. Приведите примеры описания простых переменных-указателей

  8. Как вводится переменная-указатель на текстовые строки (2 способа)?

  9. Как вводится переменная-указатель на массив?

  10. Как вводится переменная-указатель на структуру-запись?

  11. Какая память выделяется транслятором при объявлении переменных-указателей?

  12. Какие стандартные подпрограммы используются для динамического выделения и освобождения памяти?

  13. Что происходит при выполнении подпрограммы New?

  14. Как выполняется установка необходимого значения в динамически выделенную область памяти?

  15. Если р – переменная-указатель, то что определяет выражение p^ ?

  16. Если р – переменная-указатель на массив, то как можно определить i-ый элемент массива?

  17. Если p – переменная-указатель на запись, то как можно определить некоторое поле этой записи?

  18. Какие операции разрешены с переменными-указателями?

  19. Что такое “пустой указатель” и как он задается?

  20. Что происходит при вызове стандартной подпрограммы Dispose?

  21. Какие неприятности могут возникать при использовании подпрограммы Dispose?

  22. Как можно переменной-указателю непосредственно присвоить адрес базового объекта?

  23. Как задается оператор взятия адреса и для чего он используется?

  24. Как задается массив указателей?

  25. Если Pointers есть массив указателей, то что определяет выражение Pointers [ j ]^ ?

  26. Что такое нетипизированные указатели и как они описываются?

  27. Какие стандартные функции используются для распределения и освобождения памяти с нетипизированными указателями?

  28. Приведите пример записи функции для распределения памяти с нетипизированным указателем.

  29. Приведите пример записи функции для освобождения памяти с нетипизированным указателем.

Тема 2. Структуры данных “стек” и “очередь”

2.1. Что такое стек и очередь?

Стек – это линейная структура данных, в которую элементы добавляются и удаляются только с одного конца, называемого вершиной стека. Стек работает по принципу “элемент, помещенный в стек последним, извлечен будет первым”. Иногда этот принцип обозначается сокращением LIFO (Last In – First Out, т.е. последним зашел – первым вышел).

Очередь – это линейная структура данных, в которую элементы добавляются с одного конца (конец очереди), а удаляются - с другого (начало очереди). Очередь работает по принципу “элемент, помещенный в очередь первым, извлечен будет тоже первым”. Иногда этот принцип обозначается сокращением FIFO (First In – First Out, т.е. первым зашел – первым вышел). Элементами стеков и очередей могут быть любые однотипные данные. В простейшем случае – целые числа, чаще всего – записи заранее определенной структуры. Стеки и очереди очень широко используются в системных программах, в частности – в операционных системах и компиляторах. Программная реализация стеков и очередей возможна двумя способами:

  • статически с помощью массива

  • динамически с помощью механизма указателей