Алгоритм добавления звена к очереди
Звено добавляется в конец очереди. Рисунок 9 - Исходная очередь 1. Построение добавляемого звена: r = new (node); // создание узла очереди (*r).elem = Элем; // указатель на первый элемент (*r).sled = NULL; // указатель на //следующий (пустой) узел
Рисунок 10 - Заполнение добавляемого звена 2. Присоединяем звено к очереди: (*ko).sled = r; // присвоение указателя конца //новому звену очереди Рисунок 11 - Результат присоединения звена 3. " Настраиваем" указатель ko на конец очереди: ko = r; // конец очереди есть добавляемое звено Изобразим результат добавления звена: Рисунок 12 –«Настройка» указателя В результате добавляемое звено стало последним звеном очереди. Оформим алгоритм в виде функции на языке C++: void DOBAVLENIE (node *no, node *ko, int el) // Добавление звена с информационным полем el //* к очереди, определенной указателями *no и *ko. { // открытие тела функции DOBAVLENIE node *r; // указатель начала очереди r = new (node); // создание узла (*r).elem = el; // указатель на введенный элемент (*r).sled = NULL; // указатель на пустой узел if (*no! =NULL)//если очередь не пуста { // открытие if (*ko).sled = r; // присвоение указателя очереди началу //нового звена *ko = r; // указатель хвоста очереди это созданное //звено } // закрытие if Else // иначе { // открытие else *no = r; //указатель головы на новом звене *ko = r; // указатель хвоста на новом звене } //закрытие else } // закрытие тела функции DOBAVLENIE
|