Основы программирования для автоматизированного проектирования и решения творческих задач - 40 стр.

UptoLike

Составители: 

Если удаляемая вершина имеет одну ветвь продолжения, то необходимо передать указателю верх-
него элемента адрес этой ветви, после чего сам элемент можно удалить.
При удалении вершины, имеющей две ветви, главную трудность составляет то, что на удаляемую
вершину указывает один элемент. Поступают в этом случае следующим образом: на место удаляемой
вершины перемещают подходящий элемент, который сохранит принцип организации дерева в целом.
Таким звеном является либо самый правый элемент в левой ветви, либо самый левый элемент в правой
ветви относительно удаляемого элемента. Его содержимое переписывают в ячейку с удаляемой инфор-
мацией, а сам элемент после этого удаляют.
Поиск информации в бинарном дереве осуществляется аналогично процедуре добавления нового
элемента. Отличие состоит в том, что нужно найти элемент, у которого ключевое поле совпадает со
значением ключа поиска.
13 РАБОТА С ФУНКЦИЯМИ В ЯЗЫКЕ С
13.1 Описание и порядок исполнения функций
Понятие функции является для языка программирования С ключевым, так как в основе языка лежат
принципы модульного программирования. Функция представляет собой обособленный фрагмент текста
программы, предназначенный для выполнения определенных действий и, часто, возвращающий неко-
торый результат.
Каждая программа на языке С должна содержать единственную главную функцию с именем main,
которая обеспечивает начало работы откомпилированной программы. Помимо нее программа может
содержать неограниченное число других функций, вызов на исполнение которых осуществляется функ-
цией main. Каждая функция в программе должна иметь уникальное имя, по которому осуществляется
обращение к ней. Всем именам функций по умолчанию присваивается класс памяти extern, т.е. функ-
ции имеют внешний тип компоновки и статическую продолжительность существования. Для доступно-
сти в модуле функция должна быть определена в нем до первого вызова.
В определении функции указываются: последовательность выполняемых действий, имя функции,
тип возвращаемого значения и описания формальных параметров с указанием соответствующих типов
данных. Определение функции разбивают на две частизаголовок и тело функции:
тип имя_функции(список формальных параметров)
тело_функции
В качестве типа функции может выступать любой тип данных, в том числе и void, если функция не
возвращает результат явно. Список формальных параметров может быть пустым, вместо него может
стоять void, либо здесь перечисляются формальные параметры с описанием их типов данных. Список
параметров переменной длины должен заканчиваться многоточием. Тело функции представляет собой
ограниченный фигурными скобками блок, идущий сразу за заголовком функции. Внутри блока разме-
щаются определения необходимых функции программных объектов и операторы. Последним (иногда
необязательным) оператором является оператор возврата из функции return (return; или return выраже-
ние;). Возвращаемое выражение должно иметь тот же тип данных, что и тип функции, либо тип, допус-
кающий автоматическое преобразование к типу возвращаемого функцией результата.
Для того, чтобы компилятор смог проверить правильность обращения к функции в программе (пра-
вильное указание ее имени и соответствие типов передаваемых данных и результата), он должен иметь
представление о функции. Поэтому до первого обращения к функции должно быть размещено или оп-
ределение функции, или ее описание (прототип функции). Фактически прототип является заголовком
функции с той разницей, что в нем могут отсутствовать имена передаваемых объектов в списке фор-
мальных параметров:
тип имя_функции(спецификация параметров);
Для обращения к функции используется выражение с использованием операции "круглые скобки":
имя_функции(список фактических параметров)