русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Динамические структуры данных. Списки


Дата добавления: 2014-11-28; просмотров: 1952; Нарушение авторских прав


Список - это набор связанных между собой динамических элементов.

Элемент односвязной динамической структуры данных состоит из двух полей: информационного и указательного и описывается через тип «запись»:

Type Tptr =^Telem;

TElem= Record

info: integer;

next: Tptr {указатель}

end;

Очередь - это частный случай линейного односвязного списка, для которого разрешены только два действия: добавление элемента строго в конец списка, а извлечение (удаление) - строго из начала (головы) очереди.

Стек - это частный случай линейного односвязного списка, для которого разрешено добавлять или удалять элемент только с одного конца списка, который называется вершиной стека.

Пример. Задать списком строку, заканчивающуюся точкой. Подсчитать число цифр в ней.

Program pos04din;

Type

sv{связь}=^zv; {звено строки}

Zv = record

info: char; {Информационное поле}

next: sv {Указатель на следующий элемент}

end;

Var

P {Указатель на начало}, t {Указатель на текущее звено}: sv;

sym: char;

k: integer; {Количество цифр}

BEGIN

{Ввод строки и представление ее в виде цепочки}

Writeln('Введи первый символ ');

read(sym); {Формирование первого звена}

new(p);

p^.info:=sym;

p^.next:=nil;

t:=p; {Подготовка к циклу формирования остальных звеньев}

Write('Введи остальные символы и точку ');

while sym<>'.' do {Цикл обработки последовательных литер строки}

begin

read(sym);

new(t^.next);

t:=t^.next; {адрес следующего элемента}

t^.info:=sym;

t^.next:=nil;

end; {Исходное слово представлено в виде цепочки}

k:=0; t:=p;

while t<>nil do

begin

if (t^.info>='0')AND(t^.info<='9') then k:=K+1;

t:=t^.next

end;

Writeln;

Writeln('Цифр в строке - ',k);

END.

Задание 1 (программа 15_1)

 

1. Используя динамическую структуру список, подсчитать количество русских строчных букв в строке.



2. Используя динамическую структуру список, проверить, является ли он упорядоченным набором чисел.

3. Используя динамическую структуру список, подсчитать количество цифр в заданном наборе символов.

4. В деке задать слово. Определить, является ли оно словом-перевертышем.

5. Сформировать динамический список из элементов целого типа. Удалить из него отрицательные элементы. Распечатать исходный и результирующий списки.

6. Найти сумму четных элементов списка, состоящего не менее чем из двух элементов.

7. Используя динамическую структуру список, подсчитать сумму чисел в нем.

8. В динамическом списке из каждой группы подряд идущих одинаковых элементов оставить один.

9. Используя динамическую структуру список, подсчитать количество четных чисел в заданном наборе символов.

10. Используя динамическую структуру список, подсчитать сумму отрицатель-ных чисел в списке.

11. Сформировать очередь из элементов целого типа. Четные элементы возвес-ти в квадрат. Распечатать исходную и результирующую очереди.

12. Используя динамическую структуру список, подсчитать количество по-ложительных и отрицательных чисел в списке.

13. Задать два динамических списка. Проверить их на равенство.

14. Используя динамическую структуру список для хранения символов, напеча-тать только русские буквы из текста.

15. Используя динамическую структуру, список для хранения символов, определить, является ли заданная фраза палиндромом.

16. Сформировать динамический список из элементов целого типа. Определить, есть ли в списке хотя бы два совпадающих по ключевому полю элемента.

17. Используя динамическую структуру очередь, перевести введенную последовательность чисел в слово, состоящее из кодов ASCII.

18. Удалить из списка все отрицательные элементы.

19. Используя динамическую структуру список, сохранить ряд чисел. Удалить повторяющиеся элементы.

20. Построить динамический список из элементов целого типа с помощью дат-чика случайных чисел. Найти значение среднего элемента списка.

21. Используя динамическую структуру список, сохранить ряд чисел. Удалить элемент с заданным номером.

22. Сформировать динамическую структуру «очередь», элементами которой являются цифры. Извлекая элементы из очереди, напечатать их двоичные эквива-ленты.

23. Сформировать список динамических элементов, упорядоченный по возрас-танию. Включить в список новый элемент, сохранив свойство упорядоченности.

24. Используя динамическую структуру стек, распечатать элементы в обратном порядке.

25. Используя динамическую структуру "очередь", зашифровать содержимое текста: каждый символ заменить его кодом+1.

26. Используя динамическую структуру "стек", зашифровать содержимое текстового файла.

27. Используя динамическую структуру список, сохранить ряд чисел. Удалить элементы с заданным ключевым полем.

Задание 2 (программа 15_2)

Реализовать задачу с использованием другой динамической структуры или придумать свою задачу, написать и отладить для нее программу.

Лабораторная работа 16



<== предыдущая лекция | следующая лекция ==>
Первая и вторая цифры размерность исходных множеств. | Графика


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.051 сек.