Указатели. Динамические структуры данных
1. Построить список, элементами которого являются слова текста. Определить, является ли симметричным этот текст.
2. Дана последовательность различных натуральных чисел. Построить список, элементами которого являются натуральные числа. Конец списка — число 0. Напечатать в обратном порядке все числа между большим и меньшим числами этой последовательности.
3. Построить список, элементами которого являются слова текста. Слова выделяются одно от другого запятыми, после последнего — точка. Напечатать все слова наибольшей длины.
4. Задана последовательность слов из латинских букв, между словами есть пропуски, после последнего слова — точка. Напечатать слова не по алфавиту, указав для каждого из них число его вхождений в эту последовательность. Максимальную длину слов задать самостоятельно
5. Задан список, элементами которого являются натуральные числа. Необходимо вставить в начало этого списка новый элемент, введенный с терминала, и извлечь из него последний элемент. Напечатать начальный и полученный списки.
6. Задан список, элементами которого являются различные символы. Необходимо в конец этого списка вставить новый элемент, введенный из терминала, извлечь первый элемент. Напечатать начальный и полученный списки.
7. Задан текст. Необходимо построить список слов, который есть в этом тексте. Определить сколько раз встречается каждое слово в этом тексте.
8. Задана последовательность слов. Необходимо построить список, в котором каждое следущее слово начинается на букву, которая заканчивает предыдущие слово. Если такую связь-слов сделать невозможно, то построить список, в котором слова следуют по азбуке.
9. Задана последовательность целых чисел. Построить список, в котором числа упорядочены в порядке возростания, напечатать упорядоченный список. Извлечь из списка все отрицательные элементы и напечатать их.
10. Заданы две последовательности целых и действительных чисел, построить список в котором числа этих последовательностей чередуются, если последний элемент списка — целое число, то перевести его в начало спискa.
11. Задан текст, который имеет несколько строк. Построить стек, элементами которого являются буквы. Напечатать текст, в котором буквы каждой строки размещаются в обратном порядке.
12. Текстовый файл имеет текст с равным числом скобок, которые открываються и закрываются. Построить очередь или стек, элементами которого являются буквы иля часть текста. Напечатать номера позиций в тексте, каждой пары скобок, которые открываются и закрываются, например; 8 10; 12 16; и т. д.
13. Текстовый файл имеет выражение, которое записано в обычной форме (инфиксной). Перевести выражение из обычной формы записи в постфиксную и записать ее в текстовый файл. Использовать стек. Инфиксная форма выражения: а — в, а * в. Постфиксная: ав-, ав*.
14. Использовать очередь или стек для описания двоичных деревьев, элементами которого являются буквы. Определить число вхождений каждого элемента в дерево.
15. Использовать очередь или стек для описания двоичных деревьев, элементами которых являются числа. Напечатать все элементы дерева на уровнях дерева. Определить число вершин на каждом уровне дерева.
16. Использовать очередь или стек для описания дерева, определить в дереве
число веток на путиот корня до найближайшей вершины с заданным элементом. Если такого элемента нет, то напечатать сообщение об этом. Элемент вводить с терминала.
17. Текстовый файл содержит программу на языке Паскаль. Напечатать в алфавитном порядке все идентификаторы этой программы, указав для каждого из них число вхождений в текст программы. Для сохранения идентификаторов использовать структуру типа дерева, элементами которого являются идентификатор и число его вхождений в текст.
18. Текстовый файл содержит программу на языке Паскаль. Напечатать в порядке возрастания номера всех строк, которые содержат каждый идентификатор программы. Для сохранения идентификаторов использовать структуру типа дерева. Элементами дерева являются идентификаторы и номер строки, где они встречаются.
19. Построить дерево, которое отображает формулу (а*(b+c))/d, где корнями дерева и его подкорнями являются операции *,+,/» , а листами — переменные а, b, c, d. Напечатать дерево перечнем своих вершин на уровнях, которые содержат соответствующие вершины.
20. Построить дерево, которое отображает формулу ((a+b)/c)*d, где корнем дерева и его подкорнями являються операции, а лепестками являются переменные. Ввести значения переменных и определить значения дерева-формулы. Напечатать значения переменных и определить значения дерева-формулы. Напечатать соответствующие поддеревья, например: у1=а+b, у2=y1/c, y3=y2*d.
21. Задано натуральное число n, действительные числа х1…хn. Определить: а) x1xn+х2xn-1+…xnx1;б) (x1-xn)(x2-xn-1)…(xn-x1)
Использовать список вида:
22. Задано натуральное число n; дейстчительные числа х1…хn (n = 2)
Получить последовательность x1xn, x2xn, …, xn-1xn. В решении задачи поможет список, изображенный ниже.
23. Построить односвязный список, в котором каждый элемент содержит поле связи с передним или следующим элементом списка. Определить число узлов списка. Найти в списке узел с заданным с терминала значением и напечатать его порядковый номер.
24. Построить односвязный циклический список, в котором последний элемент имеет поле связи с первым элементом. Извлечь из списка узел номер которого введен с терминала. Напечатать входной и выходной списки.
25. Построить односвязный список, в котором каждый элемент содержит поле связи, как с предыдущим так и со следующим элементами. Ввести с терминала элемент списка и вставить его перед К-м элементом. Поделить список на два списка, сделав введенный элемент последним в одном списке и первым в другом. Напечатать результаты деления списка.
26. Считалка. Заданые натуральные числа m,n . Считая, что n людей становятся в круг и получают каждый свой номер, считая против часовой стрелки: 1, 2, …, n. Потом, начиная с первого, также против часовой стрелки подсчитывается человек с номером m (поскольку люди стоят по кругу, то за n-м человеком идет первый. Этот человек выходит из круга, после чего, начиная со следующего все повторяется до тех пор пока из всего круга не останется один человек. Определить его порядковый номер. Для решения задачи можно использовать такой кольцевой список.
27. Составить программу, которая высчитывает количество узлов заданного бинарного дерева и печатает все элементы дерева из корня до конечных вершин.