Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
WinCroff
-13 / 0 / 0
Регистрация: 02.05.2012
Сообщений: 20
#1

Бинарные деревья - C++

01.12.2012, 17:30. Просмотров 519. Ответов 0
Метки нет (Все метки)

В листьях бинарного дерева указаны идентификаторы переменных, в других
вершинах - знаки арифметических операций или функций SIN, COS, TG, CTG, LOG, EXP.
Возможны одноместные операции типа '+' или '-'. В этом случае требуется только один
операнд. Значения переменных известны. Проверить синтаксическую правильность
идентификаторов. Выдать на экран выражение в инфиксной форме со скобками. Определить
значение выражения.
Пример: ( (-( ((a1*bar) +c) )- (((SIN (dors) )-e) )) ).

Подскажите как доделать код?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <iostream>
#include <conio.h>
 
using namespace std;
 
struct node
{
    int data; //Информационное поле
    node *left, *right;//Левая и Правая часть дерева
};
 
node * tree=NULL; //Объявляем переменную, тип которой структура Дерево
 
/*ФУНКЦИЯ ЗАПИСИ ЭЛЕМЕНТА В БИНАРНОЕ ДЕРЕВО*/
void push(int a,node **t)
{
    if ((*t)==NULL) //Если дерева не существует
    {
        (*t)=new node; //Выделяем память
        (*t)->data=a; //Кладем в выделенное место аргумент a
        (*t)->left=(*t)->right=NULL; //Очищаем память для следующего роста
        return; //Заложили семечко, выходим
    }
       //Дерево есть
        if (a>(*t)->data) push(a,&(*t)->right); //Если аргумент а больше чем текущий элемент, кладем его вправо
        else push(a,&(*t)->left); //Иначе кладем его влево
}
 
/*ФУНКЦИЯ ОТОБРАЖЕНИЯ ДЕРЕВА НА ЭКРАНЕ*/
void print (node *t,int u) 
{
    if (t==NULL) return; //Если дерево пустое, то отображать нечего, выходим
    else 
    {
    print(t->left,++u);//С помощью рекурсивного посещаем левое поддерево
    for (int i=0;i<u;++i) cout<<"|";
    cout<<t->data<<endl; //И показываем элемент
    u--;
    }
    print(t->right,++u); //С помощью рекурсии посещаем правое поддерево
}
 
void main ()
{   
    int n; //Количество элементов
    int s; //Число, передаваемое в дерево
    cout<<"Enter number element:  ";
    cin>>n; //Вводим количество элементов
 
    for (int i=0;i<n;++i)
    {
    cout<<"Enter number:  ";
    cin>>s; //Считываем элемент за элементом
   
    push(s,&tree); //И каждый кладем в дерево
    }
    cout<<"Your tree: \n";
    print(tree,0);
    getch();       
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2012, 17:30     Бинарные деревья
Посмотрите здесь:

Бинарные деревья - C++
1)Написать программу подсчета числа вершин в бинарном дереве 2)Написать программу копирования одного бинарного дерева в другое ...

Бинарные деревья С++ - C++
Добрый день! Дали такое задание на лабораторную работу. кое-что получилось, а в остальном прошу Вас помочь... Из входной...

STL Бинарные деревья с++ - C++
Добрый вечер. Хочу узнать подробно о бинарных деревьях в STL. После поиска по интернету наткнулся на : ...

Любимые бинарные деревья. - C++
Доброго времени суток. появилась проблема с решением задачи. собсна задача: &quot;найти количество отрицательных узлов в левом и правом...

Бинарные деревья поиска - C++
Здравствуйте. Помогите решить задачу. Написать функцию, которая удаляет из бинарного дерева поиска T вершины с максимальным и минимальным...

Бинарные деревья: неправильный вывод - C++
неправильно выводит дерево,что делать? #include&lt;iostream&gt; using namespace std; struct BinarySearchTree { int data; ...

Бинарные деревья и поиск по ним - C++
Необходимо создать программу для дисциплины ИИ Задача - в поле 4х4 есть игрок и 3 блока (А,Б и С). Начальное состояние задается руками в...

Бинарные деревья, очереди, стеки - C++
#include &lt;iostream&gt; // подключение библиотеки ввода-вывода #include &lt;conio.h&gt; // подключение библиотеки функций работы с консолью ...

Задача про Бинарные деревья! - C++
здрасти! помогите плиз с задачей! я вот начал писать и столкнулся с проблемами... вот задание: Записи вершин дерева - вещественные...

Бинарные деревья с обратной связью - C++
Дан адрес P1 вершины дерева — записи типа TNode, содержащей поля Data (целого типа), Left, Right и Parent (типа PNode — указателя на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru