программа на c#
для класса searchtree из примера добавьте следующие поля, свойства и методы:
закрытое поле count, подсчитывающее количество вершин дерева;
свойство count, возвращающее количество вершин дерева;
метод isempty, возвращающий true, если дерево пусто, или false в противном случае;
метод clear, удаляющий дерево.
using system;
using system.collections.generic;
using system.text;
namespace binarytrees
{
// двоичное дерево поиска
public class searchtree
{
// узел дерева
class node
{
public double value { get; set; } // хранимое в узле значение
public node left { get; set; } // ссылка на левое поддерево
public node right { get; set; } // ссылка на правое поддерево
// конструктор (создает узел дерева)
public node(double val)
{
value = val;
left = right = null;
}
}
node root = null; // ссылка на корень дерева
// добавление элемента в дерево
public void add(double val)
{
if (root == null)
{
root = new node(val);
return;
}
node current = root; // ссылка на текущий узел
while (true)
{
if (val < current.value)
{
if (current.left == null)
{
current.left = new node(val);
return;
}
else
current = current.left;
}
else
{
if (current.right == null)
{
current.right = new node(val);
return;
}
else
current = current.right;
}
}
}
// поиск элемента
public bool search(double val)
{
if (root == null)
return false;
node current = root; // ссылка на текущий узел
while (true)
{
if (val < current.value)
{
if (current.left == null)
return false;
else
current = current.left;
}
else if (val > current.value)
{
if (current.right == null)
return false;
else
current = current.right;
}
else
return true;
}
}
// симметричный обход всего дерева
public void inorderwalk()
{
inorderwalk(root);
console.writeline();
}
// симметричный обход поддерева t
void inorderwalk(node t)
{
if (t ! = null)
{
inorderwalk(t.left);
console.write(t.value + " ");
inorderwalk(t.right);
}
}
}
class program
{
static void main(string[] args)
{
searchtree tree = new searchtree();
tree.add(4);
tree.add(2);
tree.add(0);
tree.add(3);
tree.add(6);
tree.add(5);
tree.add(9);
console.writeline("симметричный обход дерева: ");
tree.inorderwalk();
for (double x= 0; x < 10; x++)
{
if (tree.search(x))
console.writeline("элемент {0} содержится в дереве", x);
else
console.writeline("элемент {0} отсутствует в дереве", x);
}
console.readline();
}
}
}
№6 - 1,3,4,5
№7 - 1
№8 - 1,2,3,4
№9 -
=(B2-$C$1)*4
=(B3-$C$1)*4
№10 - 7,5
Объяснение:
№6- Формат записи адреса ячейки: БЦ, т.е.
Б - это буквенное обозначение столбца, а Ц - это номер строки.
№7 - Формула всегда начинается со знака равенства (=), за которым могут следовать числа, математические операторы, функции, которые значительно расширяют возможности формулы.
№8 - Смешанная ссылка содержит либо абсолютно адресуемый столбец и относительно адресуемую строку $А1, либо относительно адресуемый столбец и абсолютно адресуемую строку А$1.
№9 - $C$1 - Абсолютная ссылка (в формуле всегда ссылается на ячейку, расположенную в определённом (фиксированном) месте). Поэтому, при копировании будет изменяться только номер столбца B
№10 - В ячейке A1 число 5, в ячейке A2 число 10. Среднеарифметическое этих чисел равно (5+10)/2=7.5
#include <iostream>
#include <string>
#include <conio.h>
#define ESC 27
using namespace std;
int main() {
char ch;
int sum = 0;
do {
ch = _getch();
if (ch == ESC) {
cout << "Output of the program:\n" << sum;
putchar('\n');
} else {
cout << ch;
sum += (int)ch;
putchar('\n');
}
} while (ch != ESC);
system("pause");
return 0;
}
Объяснение: