Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Лекция 12. На водогрейном котле: АСР температуры воды; АСР воздуха; АСР разрежения в топке

АСР нагрузки

 

На водогрейном котле:

  1. АСР температуры воды;
  2. АСР воздуха;
  3. АСР разрежения в топке.

(Иногда все перечисленные системы собирательно называют АСР горения).

 

АСР воздуха и разрежения в топке аналогичны соответствующим системам парового котла.

 

АСР температуры воды.

 

На деаэраторе:

  • АСР уровня в деаэраторе;
  • АСР давления перегретого пара.

 

Бинарные деревья поиска

 

Бинарные деревья поиска (БДП) часто используются для представления данных, среди которых идет поиск элемента по ключу.

Если дерево организовано так, что для каждой вершины с адресом t справедливо утверждение: все ключи ее левого поддерева меньше ключа вершины с адресом t, а все ключи ее правого поддерева больше ключа вершины с адресом t, то такое дерево называется бинарным деревом поиска.

В БДП для обнаружения ключа достаточно, начав с корня, двигаться к левому или правому поддереву на основании лишь одного сравнения с ключом текущей вершины.

Предположим, что имеется описание класса, характеризующего БДП:

 

class bdp

{public:

int b;

char name[20];

bdp *left;

bdp*right;

void create_tree();//создание БДП

void output_tree(bdp *p);//вывод на экран БДП

void search(int key,bdp *p);//поиск элемента в БДП

void insert(bdp obj,bdp *&p);//вставка элемента в БДП

void delete_element(int key,bdp *&p);//удаление элемента из БДП

void delete_tree(bdp *&p);//удаление БДП из памяти компьютера

};

 

Предположим, что имеются следующие описания:

bdp *head;//указатель на корень дерева

bdp *q;//текущий указатель

 

Поиск элемента с заданным ключом в БДП

 

 

void bdp::search(int key,bdp *p)

{/*функция выводит на экран информационные поля найденного элемента или сообщает, что элемент не найден*/

 

while(p!=NULL&&p->b!=key)

{if(p->b<key)

p=p->right;

 

 

else

p=p->left;

}

if(p==NULL)

cout<<"\nЭлемент не найден";

else

{cout<<"\n------------------------";

cout<<"\n|nomer|name|";

cout<<"\n------------------------";

cout<<"\n"<<setw(6)<<p->b;

cout<<"|"<<setw(10)<<p->name<<"|";

cout<<"\n------------------------\n";

}

getch();

}

 

Включение элемента с заданным ключом в БДП

 

void bdp::insert(bdp obj,bdp *&p)

{if(p==NULL)

{p=new bdp;

p->b=obj.b;

strcpy(p->name,obj.name);

p->left=NULL;

p->right=NULL;

}

else

if(obj.b<p->b)

insert(obj,p->left);

else

if(obj.b>p->b)

insert(obj,p->right);

}

 

Исключение элемента с заданным ключом из БДП

 

Исключение элемента реализуется просто, если вершина является листом, либо вершиной с одним потомком. Для удаления листа или вершины с одним потомком достаточно скорректироватьссылку у предшествующей вершины. Основная трудность состоит в удалении вершины с двумя потомками. В этом случае нужно найти подходящую вершину, которую можно было бы вставить на место удаляемой. Такой элемент всегда существует: это либо самый правый элемент левого поддерева, либо самый левый элемент правого поддерева.

 

 

Алгоритм удаления элемента из БДП должен различать 3 случая:

1.элемента с заданным ключом в дереве нет;

2.элемент с заданным ключом имеет не более одной ветви;

3.элемент с заданным ключом имеет две ветви.

Определим функцию del(), которая заменяет удаляемый элемент с адресом q на самый правый элемент левого поддерева удаляемого элемента, если удаляемый элемент имеет две ветви.

 

void del(bdp *&r)

{

if(r->right==NULL)

{q->b=r->b;

strcpy(q->name,r->name);

q=r;

r=r->left;

}

else del(r->right);

}

 

void bdp::delete_element(int key,bdp *&p)

{

 

if(p==NULL)

cout<<"\nЭлемента нет";

else

if(key<p->b)

delete_element(key,p->left);

else

if(key>p->b)

delete_element(key,p->right);

else

{q=p;

if(q->right==NULL)

p=q->left;

else

if(p->left==NULL)

p=q->right;

else del(q->left);

delete q;

}

}

 

 

Вывод значений ключей элементов дерева по возрастанию

 

 

void bdp::output_tree(bdp *p)

{if(p!=NULL)

{output_tree(p->left);

cout<<"\n|"<<setw(6)<<p->b;

cout<<"|"<<setw(10)<<p->name;

cout<<"|";

output_tree(p->right);

}

}

 

Удаление БДП из динамической памяти

 

 

void bdp::delete_tree(bdp *&p)

{if(p!=NULL)

{delete_tree(p->left);

delete_tree(p->right);

delete p; p=NULL;

}

}

 

 

Создание БДП

 

 

void bdp::create_tree()

{int i;

bdp obj;

 

head=NULL;

for(i=0;i<n;i++)//n – количество вершин в дереве

{cin>>obj.b;

gets(obj.name);

insert(obj,head);

}

}

<== предыдущая лекция | следующая лекция ==>
Автоматические системы регулирования котельных установок | Напряженность электростатического поля. Принцип суперпозиции электрических полей. Поток вектора
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 565; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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