Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ как вывести знак £ http://www.cyberforum.ru/cpp-beginners/thread282373.html
как вывести знак £
C++ считывание ini файла люди подскажите как считать ini файл в структуру уже мучаюсь 2 дня вот что написал но оно не работает int i=0; while (( !book.eof()) && (i!=10)) { ... http://www.cyberforum.ru/cpp-beginners/thread282371.html
C++ Программа и Visual Studio 2010
Программу взял отсюда,но она почему -то не работает в VS 2010 #include <iostream.h> int main() { int max=999; int mass={0}; for (int i=0; i<5; i++) { cout<<"Vvedite chisla massiva"; ...
в C++ из Pascal C++
Помогите, пожалуйста, передеалть задачу (лексикографическая сортировка) из Pascal в С++. Нашла точно такой же алгоритм, как у нас в методичке, но на Pascal Во вложенном файле посылаю на Pascal.
C++ Сравнение символов из строки http://www.cyberforum.ru/cpp-beginners/thread282307.html
getline(cin, Text); for (i = 1; i <= Text.length(); i++) { 16: if ((Text == " ") && (Text == " ")) { 18: Text.remove(i, 1); } } Программа должна удалять...
C++ просто вопрос=) привет всем! кто знает если сюда задачу написать за сколько минут тут могут задачу решить? скоро зачеты хотел узнать(((( подробнее

Показать сообщение отдельно
Alexlx
0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 25
25.04.2011, 17:10  [ТС]
ну вот все работает) если кому надо
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# include "iostream"
# include "stdio.h"
# include "locale.h"
# include "conio.h"
 
using namespace std;
 
struct tree
{   char elem;
    tree *left,*right;};
 
struct stack
{   tree *elem ;
    stack *next;};
 
void in(stack **s, tree *d)
{   stack *q;
    if( *s!=NULL )
    {   q = new stack;
        q->next= (*s);
        q->elem = d;
        *s=q;
    }
    else
    {   (*s) = new stack;
        (*s)->elem = d;
        (*s)->next = NULL;
    }
}
 
void out(stack **s, tree **d)
{   stack *q;
    q = (*s);
    (*s)=q->next;
    (*d) = q->elem;
    delete q;
}
 
tree *build(FILE *file)
{   tree *d;
    char c;
    fscanf(file,"%c",&c);
    if (c == ',') fscanf(file,"%c",&c);
    if (c == '(')
    {
        d = new tree;
        fscanf(file,"%c",&c);
        d->elem = c;
        d->left = build(file);
        d->right = build(file); 
        fscanf(file,"%c",&c);
        return d;
    }
    else return NULL;
}
 
void kol(tree *d,int *j,int m)
{   stack *s;
    s=NULL;
    tree *t;
    t=d;
    int f=1,n=-1;//k-предыдущий элемент стека,n-номер текущего уровня
    tree *k=NULL;
    while (f)
    {   while (t!=NULL&&n<m)
        {   in (&s,t);
            k=t;
            t=t->left;
            n++;
        }
        if(s!=NULL)
        {   if(n==m)
            {   out (&s,&t);
                *j=*j+1;
                if(s!=NULL)k=s->elem;
                t=NULL;
                n--;
            }
            else
            {   if(k->right!=NULL)
                {   if(m==n+1)
                    {   *j=*j+1;
                        out (&s,&t);
                        if(s!=NULL)k=s->elem;
                        t=NULL;
                        n--;
                    }
                    else
                    {   out (&s,&t);
                        t=t->right;
                    };
                }
                else
                {   out (&s,&t);
                    if(s!=NULL)k=s->elem;
                    t=NULL;
                    n--;
                };
            };
        }
        else    f=0;
    }
}
 
void main ()
{   setlocale(LC_CTYPE,"Russian");
    tree *d;
    FILE *file;
    int j=0,m=-1;//j-количесвто элементов на уровне,m-номер заданного уровня
    file =fopen("input.txt","r");
    d=build(file);
    fclose(file);
    printf("Введите номер уровня\n");
    scanf("%i",&m);
    kol(d,&j,m);
    printf("Количесвто элементов на %i уровне равно %i\n",m,j);
    _getch();
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.