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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Задания С++ (операции со строкой) http://www.cyberforum.ru/cpp-beginners/thread715343.html
Здравствуйте,помогите с написанием программ в С++ (использую CodeBlocks),я новичек хочу научиться,но лучше понимаю на примерах. Заранее спасибо. 3.Дана строка, содержащая текст и арифметичские выражения со знаками +,-,*,/. Выписать все арифметические выражения и вычислить их значения
C++ С++ (функции) На С++ создать функцию , которая вводит с клавиатуры последовательность целых чисел и после ввода последнего числа выводит на печать в главной функции среднее арифметическое всех введенных чисел. Параметром функции является количество вводимых чисел. Никаких "помогите" в названии темы. Зашедшей сюда человек это итак поймет http://www.cyberforum.ru/cpp-beginners/thread715341.html
C++ В массиве найти два члена,среднее арифметическое которых ближе всего к Х
Здравствуйте,помогите с написанием программ в С++ (использую CodeBlocks),я новичек хочу научиться,но лучше понимаю на примерах. Заранее спасибо. 2.Дано действительное число Х и массив А.В массиве найти два члена,среднее арифметическое которых ближе всего к Х
C++ Поиск индексов в массиве
Задача: надо вывести индексы массива, которые находят полный квадратный корень в ячейке и при этом максимальный. Проблема: в файле .cpp работает отлично, а вот .c никак не хочет. Помогите пожалуйста решить вопрос. #include <stdio.h> #include <string.h> #include <math.h> void index(int A, int *mi, int *mj); int main()
C++ Функция для рассчета среднего арефмитического введенных чисел http://www.cyberforum.ru/cpp-beginners/thread715335.html
на С++ Создать функцию , которая вводит с клавиатуры последовательность целых чисел и после ввода последнего числа выводит на печать в главной функции среднее арифметическое всех введенных чисел. Параметром функции является количество вводимых чисел. Добавлено через 1 минуту даже слово пожалуйста , написать в заголовке нельзя )
C++ Задания С++ (табулирование функции) Здравствуйте,помогите с написанием программ в С++ (использую CodeBlocks),я новичек хочу научиться,но лучше понимаю на примерах. Заранее спасибо. 4.Протабулируйте функцию.Отрезок и шаг вводятся с клавиатуры.Выражение cosX-(4*x^3\1+x^2). ^ - степень подробнее

Показать сообщение отдельно
WinCroff
-13 / 0 / 0
Регистрация: 02.05.2012
Сообщений: 20
01.12.2012, 17:30     Бинарные деревья
В листьях бинарного дерева указаны идентификаторы переменных, в других
вершинах - знаки арифметических операций или функций 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();       
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru