Практикум по курсу "Алгоритмизация и программирование". Часть 2. Андрианова А.А - 54 стр.

UptoLike

А.А. Андрианова, Л.Н. Исмагилов, Т.М. Мухтарова .
ляется пустая улевая) ссылка в поле адреса следующего элемента. Напри-
мер, в языке С++ для обозначения пустой ссылки используется константа
NULL, в C# и Java – null, в Pascal – nil.
Далее приводится описание процесса решения некоторых задач с при-
менением пользовательских функций.
Задача 1. Пусть имеется непустой односвязный список, который содер-
жит целые числа. Написать функцию нахождения суммы элементов списка.
Рис.3.2. Исходный список.
// структура для хранения узла списка
struct List
{
int info; // информационное поле
List* next; // указатель на следующий узел списка
};
Чтобы найти сумму элементов списка, нужно пройти по всем его узлам,
добавляя значение информационного поля (переменная info) к переменной,
хранящей сумму. Для этого заводим переменную current, которая сначала
хранит адрес первого элемента списка. В цикле последовательно по цепочке
сдвигаем ее значение на следующий элемент (current=current->next).
Условие окончания цикла – значение NULL в переменной current.
// определение функции подсчета суммы элементов списка
int SummaList(List*head)
{
int s=0;
// просмотр элементов списка начинается
// с его первого элемента
List* current=head;
while(current!=NULL)// пока список не закончен
{
s+=current->info;// добавление значения текущего
54
А.А. Андрианова, Л.Н. Исмагилов, Т.М. Мухтарова                  .
ляется пустая (нулевая) ссылка в поле адреса следующего элемента. Напри-
мер, в языке С++ для обозначения пустой ссылки используется константа
NULL, в C# и Java – null, в Pascal – nil.

    Далее приводится описание процесса решения некоторых задач с при-
менением пользовательских функций.
    Задача 1. Пусть имеется непустой односвязный список, который содер-
жит целые числа. Написать функцию нахождения суммы элементов списка.




                                 Рис.3.2. Исходный список.

    // структура для хранения узла списка
    struct List
    {
          int info;    // информационное поле
          List* next;  // указатель на следующий узел списка
    };


    Чтобы найти сумму элементов списка, нужно пройти по всем его узлам,
добавляя значение информационного поля (переменная info) к переменной,
хранящей сумму. Для этого заводим переменную current, которая сначала
хранит адрес первого элемента списка. В цикле последовательно по цепочке
сдвигаем ее значение на следующий элемент (current=current->next).
Условие окончания цикла – значение NULL в переменной current.

    // определение функции подсчета суммы элементов списка
    int SummaList(List*head)
    {
          int s=0;
          // просмотр элементов списка начинается
          // с его первого элемента
          List* current=head;

            while(current!=NULL)// пока список не закончен
            {
                 s+=current->info;// добавление значения текущего

                                            54