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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 53, средняя оценка - 4.98
as
36 / 22 / 3
Регистрация: 14.02.2009
Сообщений: 355
#1

Дерево бинарного поиска - C++

17.12.2009, 20:25. Просмотров 6777. Ответов 8
Метки нет (Все метки)

Всем привет!
Есть рабочий код бинарного поиска
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
template <class Item, class Key>
class ST
{
private:
struct node
{ Item item; node *l, *r;
node(Item x)
{ item = x; l = 0; r = 0; }
};
typedef node *link;
link head ;
Item nullItem;
Item searchR (link h, Key v)
{ if (h == 0) return nullItem;
Key t = h->item.key() ;
if (v == t) return h->item;
if (v < t) return searchR (h->l, v) ;
else return searchR(h->r, v) ;
}
void insertR (link h, Item x)
{ if (h == 0) { h = new node(x) ; return; }
if (x.key() < h->item.key())
insertR(h->l, x) ;
else insertR(h->r, x) ;
}
public:
ST(int maxN)
{ head = 0; }
Item search (Key v)
{ return searchR(head, v); }
void insert(Item x)
{ insertR(head, x); }
};
 
int main()
{
ST<int,int>MYQ(10);
 
return 0;
}
НЕ могу понять что писать в main ,как заполнить дерево числами , надо писать дополнительные ф-ии?

Добавлено через 48 минут
Ф-ии принимают параметр head , когда я вызываю эти фи-и что надо писать вместо этого параметра???
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2009, 20:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дерево бинарного поиска (C++):

Дерево бинарного поиска - C++
Никак не могу понять как изменить бинарный поиск. Код выводит значения элементов для которых высота левого поддерева больше высоты правого,...

Дополнить дерево бинарного поиска - C++
Помогите дополнить программу методом подсчета числа узлов заданного бинарного дерева и методом подсчета числа листьев заданного бинарного...

Удаление элементов из бинарного дерева (не дерево поиска) - C++
Задание заключается в создании бинарного дерева, из букв введенной строки, обходе дерева и удалении согласных букв из дерева. проблема...

Создание бинарного дерево из бинарного файла - C++
struct Bin { string name; string city; int players; int score; }; void ReadFromBin(Point*&amp; Tree) { ...

Исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру - C++
Помогите, не могу понять!( Нужно исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру. вот...

Бинарное дерево из НЕ бинарного - C++
тащемта всё ясно из названия темы есть небинарное дерево -&gt; надо сделать из него бинарное не могу понять, как быть, если в небинарном...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
17.12.2009, 20:35 #2
вот тебе рабочий вариант, он должен помоч, я надеюсь:
//если не понятно - спрашивай.
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#include<iostream>
using namespace std;
 
template <class T,class I> class node
{
      private:
              T x; //ключ
              I info;//информация
              node* LL; //left link
              node* RL; //right link
      public:
             node(){x=0;LL=0;RL=0;};
             ~node()
             {
                  if (LL) LL->~node();
                  if (RL) RL->~node();
                  if (LL) {delete LL; LL=0;}
                  if (RL) {delete RL; RL=0;}
             }
             void putx(T new_x,I new_info){this -> x=new_x;this -> info=new_info;}
             void null_leftlink(){this -> LL=0;}
             void null_rightlink(){this -> RL=0;}
             void add(T new_x, I new_info)
             {
                  if (LL&&(new_x < x)) LL->add(new_x,new_info);
                  if (RL&&(new_x > x)) RL->add(new_x,new_info);
                  
                  if (!LL&&(new_x < x))
                  {
                          node* N=new node;
                          N->x=new_x;
                          N->info=new_info;
                          N->LL=0;
                          N->RL=0;
                          LL=N;
                  }
                  if (!RL&&(new_x > x))
                  {
                          node* N=new node;
                          N->x=new_x;
                          N->info=new_info;
                          N->LL=0;
                          N->RL=0;
                          RL=N;
                  }
             }
             void print(int tab)
             {
                  if (RL) RL-> print(tab + 1);
                     for(int i=1;i!=tab;i++)cout << "  "; cout <<this->x << "-"<< this->info << endl;
                  if(LL) LL->print(tab + 1);      
             }
             void del_all()
             {
                  if (LL) LL->del_all();
                  if (RL) RL->del_all();
                  if (LL) {delete LL; LL=0;}
                  if (RL) {delete RL; RL=0;}
             }
             void del(T x_to_del)
             {
                  if (LL) LL->del();
                  if (RL) RL->del();
                  //не дописано еще.
             }
             I get(T getx)
             {
                  if (getx==x) return info;
                  if (LL&&(getx < x)) return LL->get(getx);
                  if (RL&&(getx > x)) return RL->get(getx);
             }
};
 
template <class T,class I> class tree
{
      private:
              node <T,I>* link;
      public:
             tree(){link=0;};
             ~tree(){if (link)link->~node<T,I>();delete link; link=0;};
             void add(T new_x,I new_info)
             {
                  if (link) link->add(new_x,new_info);
                  else
                  {
                      node<T,I>* N=new node<T,I>;
                      N->putx(new_x,new_info);
                      N->null_leftlink();
                      N->null_rightlink();
                      link=N;
                  }
             };
             void print(){if(link)link->print(1);else cout << "No tree existing\n";}
             void del_all(){if(link) link->del_all(); delete link; link=0;}
             void del(int x){if (link)link->del(x);};
             I get(T x){if (link) return link->get(x);else cout << "No elements existing\n";}
};
 
int main()
{
    system("cls");//clear screen
    tree <int,char> *T=new tree <int,char>; // создание дерева
    //menu
    int choos=0;
    const int exit=6;
    while (choos!=exit)
    {
          cout << "Hello! This is a 'tree' example\n"
                  "There is a menu for you to choos:\n"
                  "  1-add;\n"
                  "  2-use destructor;\n"
                  "  3-print;\n"
                  "  4-delete all;\n"
                  "  5-get element;\n"
                  "  6-exit;\n"
                  "enter-> "; cin >> choos; system("cls");
          switch (choos){
                 case 1: {
                         int key; //ключ.
                         char val; //значение
                         cout << "enter key: "; cin >> key;
                         cout << "enter int value: "; cin >> val; 
                         T->add(key,val); 
                         break;
                 }
                 case 2: T->~tree(); break;
                 case 3: T->print(); break;
                 case 4: T->del_all(); break;
                 case 5:{
                      cout << "what is key of element? "; 
                      int key=0;
                      cin >> key;
                      cout << "there it is: " << T->get(key) << endl;
                      break;}
                 default: if (choos!=exit)cout << "wrong int value " << choos << endl;
          }
    }
    delete T; //удаление дерева, используется деструктор.
}
у меня работает (DEV-C++ 4.9.9.2), в main() меню для работы с деревом.
2
Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
17.12.2009, 20:36 #3
C++
1
MYQ.insert(1);
0
utwo
3 / 3 / 0
Регистрация: 10.10.2009
Сообщений: 108
07.01.2010, 16:24 #4
Aye Aye,
а если без использования классов и template, получиться? например через структуры?
0
eddilou
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
19.06.2012, 11:13 #5
Цитата Сообщение от Aye Aye Посмотреть сообщение
вот тебе рабочий вариант, он должен помоч, я надеюсь:
//если не понятно - спрашивай.
привет всем, наткнулся на темку, нужна была данная реализация дерева, но оказалось что код не совсем рабочий на строчке 83 компилятор ругается
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,927
19.06.2012, 15:37 #6
eddilou, вот код, делал давно, когда еще ОП начал проходить.
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
119
120
121
122
123
124
125
126
127
128
129
#include <iostream>
#include <conio.h>
#include <fstream>
using namespace std;
 
struct  bin_tree
{
   int value;
   bin_tree *left, *right;
}*pHead = NULL; // ГіГЄГ*Г§Г*òåëü Г*Г* âåðøèГ*Гі Г°Г*ГўГҐГ* Г*óëþ
 
// äîáГ*âëåГ*ГЁГҐ ГЄГ®Г*êðåòГ*îãî óçëГ* äåðåâГ*
void add_node(bin_tree*, int); 
// ïðîâåðêГ* Г*Г* "ïóñòîòó" äåðåâГ*, åñëè ГіГЄГ*Г§Г*òåëü Г*Г* âåðøèГ*Гі Г°Г*ГўГҐГ* Г*óëþ, ñîçäГ*ГҐГІ óçåë
void add_bin_tree(int);
// îáõîä
void print(bin_tree*);
void traversal(bin_tree*, ofstream&);
int h_tree(bin_tree *);
 
int main()
{
    setlocale (LC_ALL, "Russian");
    int choose, el;
    cout<< "1. Г‡Г*ãðóçèòü ïîñëåäîâГ*òåëüГ*îñòü Г± ГґГ*éëГ*\n"
        << "2. Ââåñòè ïîñëåäîâГ*òåëüГ*îñòü âðó÷Г*ГіГѕ\n\n"
        << "Г‚Г*Гё âûáîð: ";
    do{ cin>> choose;} while(choose != 1 && choose != 2);
    if (choose == 1)
    {        
        ifstream iz("bin.txt");
        if (iz.bad()) return 1;
        while(!iz.eof() && iz>> el)
            add_bin_tree (el);     
        iz.close();
    }
    
    if (choose == 2)
    {
        cout<< "Г€Г*ôîðìГ*öèîГ*Г*ûå ïîëÿ âåðøèГ* äåðåâГ*:\n";
        while(cin>> el)
            add_bin_tree (el);
    }
    ofstream o("bin.txt");
    print (pHead);
    traversal (pHead, o);
    getch();
    o.close();
    return 0;
}
 
void add_node(bin_tree* tree, int value) // äîáГ*âëåГ*ГЁГҐ ГЄГ®Г*êðåòГ*îãî óçëГ* äåðåâГ*
{
    if(value < tree->value)
    { 
        if(tree->left != NULL) // åñëè Г§Г*Г*Г·ГҐГ*ГЁГҐ ìåГ*ГјГёГҐ, äâèãГ*åìñÿ ГЇГ® "ëåâîé ГўГҐГІГЄГҐ"
            add_node(tree->left, value);
        else
        {  
            tree->left = new bin_tree;
            tree->left->value = value;
            tree->left->left = NULL;
            tree->left->right = NULL;
        }
    }
 
    if(value > tree->value) // ГЁГ*Г*Г·ГҐ äâèãГ*åìñÿ ГЇГ® ГЇГ°Г*âîé 
    { 
        if(tree->right != NULL)
            add_node(tree->right, value);
        else
        {
            tree->right = new bin_tree;
            tree->right->value = value;
            tree->right->left=NULL;
            tree->right->right=NULL;
        }
    }
 
    if(value == tree->value)                
        cout<< value<< " is already in tree"<< endl;
}
 
void add_bin_tree(int value)
{
    if(pHead == NULL) // åñëè äåðåâî ïóñòîå - ñîçäГ*äèì ïåðâûé óçåë
    {
       pHead = new bin_tree;
       pHead->value = value;
       pHead->left = NULL;
       pHead->right = NULL;
    }
    else
        add_node(pHead, value); // åñëè Гў âåðøèГ*ГҐ óæå Г·ГІГ®-ГІГ® ГҐГ±ГІГј - äîáГ*âëÿåì ñëåâГ* èëè Г±ГЇГ°Г*ГўГ* 
}
 
void traversal(bin_tree* tree, ofstream &o)
{     
    if (tree != NULL)
    { 
        traversal(tree->left, o);
        o<< tree->value<< " ";
        traversal(tree->right, o);
    }
}
 
void print(bin_tree* tree)
{     
    if (tree != NULL)
    { 
        print(tree->left);
        cout<< tree->value<< " ";
        print(tree->right);
    }
}
 
int h_tree(bin_tree* tree)
{
     int h = 1, m = 0, s;
     if (tree == NULL)
        return 0;
     s = h_tree(tree->left);
     if (s > m)
         m = s;
     s = h_tree(tree->right);
     if (s > m)
         m = s;
     return h + m;
}
Добавлено через 53 секунды
Кстати, есть еще АВЛ деревья, кому интересно
0
eddilou
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
19.06.2012, 16:56 #7
Цитата Сообщение от MrGluck Посмотреть сообщение
Кстати, есть еще АВЛ деревья, кому интересно
привет еще раз, не могли бы вы скинут еще код по авл деревву очень надо бы по нему просто я не очень шарю а курсач надо делать(( авл намного лучше чем бинарное
я просто хочу подключить как бы хедер и сипользовать функции авл для сортировки и поиска
скиньте пож-та надеюсь рабочий и понятный а то сколь смотрел по авл так и не понял как его делать
а есть ли еще по КЧД?

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

Добавлено через 19 минут
и кстати в том исходники что выложил не нашел удаление узла и удаления полсностью дерева
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,927
19.06.2012, 17:04 #8
и кстати в том исходники что выложил не нашел удаление узла и удаления полсностью дерева
там его нет

АВЛ-дерево
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
#include <iostream>
#include <clocale>
#include <conio.h>
#include <fstream>
#include <vector>
using namespace std;
 
struct node
{
    int Key;
    int bal;
    node *Left, *Right;
};
 
class TREE
{
  private:
    // h - ГґГ«Г*ГЈ, Г±ГЁГЈГ*Г*ëèçèðóþùèé îá óâåëè÷åГ*ГЁГЁ âûñîòû ïîääåðåâГ*:
    // true - âûñîòГ* ïîääåðåâГ* óâåëè÷èëГ*Г±Гј,
    // false - âûñîòГ* ïîääåðåâГ* Г*ГҐ óâåëè÷èëГ*Г±Гј.
    bool h;
    node *Tree;
  public:
    TREE() {Tree = NULL; h = false;}
    void Search (int, node **);
    void Print (node **, int);
    void Traversal (node **, ofstream&);
    node** GetTree() {return &Tree;}
};
 
int main()
{
    setlocale(LC_ALL, "Russian");
    TREE A;
    int choose, el;
    cout<< "1. Г‡Г*ãðóçèòü ïîñëåäîâГ*òåëüГ*îñòü Г± ГґГ*éëГ*\n"
        << "2. Ââåñòè ïîñëåäîâГ*òåëüГ*îñòü âðó÷Г*ГіГѕ\n\n"
        << "Г‚Г*Гё âûáîð: ";
    do{ cin>> choose;} while(choose != 1 && choose != 2);
    vector <int> v;
    vector <int>::iterator cur;
    if (choose == 1)
    {
        ifstream iz("bin.txt");
        if (iz.bad()) return 1;
        while(!iz.eof() && iz>> el)
            v.push_back(el);
        iz.close();
    }
    
    if (choose == 2)
    {
        cout<< "Г€Г*ôîðìГ*öèîГ*Г*ûå ïîëÿ âåðøèГ* äåðåâГ*:\n";
        while(cin>> el)
            v.push_back(el);
    }
    
    sort (v.begin(), v.end());
    for (cur = v.begin(); cur < v.end(); cur++)
            A.Search (*cur, A.GetTree());
    // Гѓ.ГЊ.ÀäåëüñîГ*-Âåëüñêèé ГЁ Г….ГЊ.Г‹Г*Г*äèñ
    cout<< "\nÀÂË-äåðåâî:\n\n";
    A.Print (A.GetTree(), 0);
    ofstream o("bin.txt");
    A.Traversal (A.GetTree(), o);
    getch();
    o.close();
    return 0;
}
 
void TREE::Search (int x, node **p)
// x - êëþ÷ âåðøèГ*Г», ïîìåùГ*åìîé Гў ÀÂË-äåðåâî.
// *p - ГіГЄГ*Г§Г*òåëü Г*Г* êîðåГ*Гј ÀÂË-äåðåâГ*.
// h - ГґГ«Г*ГЈ, Г±ГЁГЈГ*Г*ëèçèðóþùèé îá óâåëè÷åГ*ГЁГЁ âûñîòû ïîääåðåâГ*:
// true - âûñîòГ* ïîääåðåâГ* óâåëè÷èëГ*Г±Гј,
// false - âûñîòГ* ïîääåðåâГ* Г*ГҐ óâåëè÷èëГ*Г±Гј.
// Ïðè ïåðâîì îáðГ*Г№ГҐГ*ГЁГЁ ГЄ ГґГіГ*êöèè Search() h=false.
{
    node *p1, *p2;
    h = false;
    if (*p == NULL) // åñëè ГіГЄГ*Г§Г*òåëü Г*Г* äåðåâî Г°Г*ГўГҐГ* 0
    {
        *p = new(node);
        h = true;
        (**p).Key = x;
        (**p).Left = (**p).Right = NULL;
        (**p).bal = 0;
    }
    else
    if (x <= (**p).Key)
    {
        Search (x, &((**p).Left));
        if (h == true)
            switch ((**p).bal)
            {
                case 1 :  (**p).bal = 0; h = false; break;
                case 0 : (**p).bal = -1; break;
                case -1:
                          p1 = (**p).Left;
                          if ((*p1).bal==-1)
                          {
                              (**p).Left = (*p1).Right;
                              (*p1).Right = *p;
                              (**p).bal = 0;
                              *p = p1;
                          }
                          else
                          {
                              p2 = (*p1).Right;
                              (*p1).Right = (*p2).Left;
                              (*p2).Left = p1;
                              (**p).Left = (*p2).Right;
                              (*p2).Right = *p;
                              if ((*p2).bal == -1)
                                  (**p).bal = 1;
                              else
                                  (**p).bal = 0;
                              if ((*p2).bal == 1)
                                  (*p1).bal = -1;
                              else
                                  (*p1).bal = 0;
                              *p = p2;
                          }
                          (**p).bal = 0;
                          h = false;
                          break;
            } // switch ((**p).bal)
    } // if (x <= (**p).Key)
    if (x > (**p).Key)
    {
        Search (x, &((**p).Right));
        if (h == true)
            switch ((**p).bal)
            {
                case -1: (**p).bal = 0; h = false; break;
                case  0: (**p).bal = 1; break;
                case  1:
                          p1 = (**p).Right;
                          if ((*p1).bal == 1)
                          {
                              (**p).Right = (*p1).Left;
                              (*p1).Left = *p;
                              (**p).bal = 0;
                              *p = p1;
                          }
                          else
                          {
                               p2 = (*p1).Left;
                               (*p1).Left = (*p2).Right;
                               (*p2).Right = p1;
                               (**p).Right = (*p2).Left;
                               (*p2).Left = *p;
                               if ((*p2).bal == 1)
                                   (**p).bal = -1;
                               else
                                   (**p).bal = 0;
                               if ((*p2).bal == -1)
                                   (*p1).bal = 1;
                               else
                                   (*p1).bal = 0;
                               *p = p2;
                          }
                          (**p).bal = 0;
                          h = false;
                          break;
             } //switch ((**p).bal)
    } //if (x > (**p).Key)
} // void TREE::Search (int x, node **p)
 
void TREE::Print (node **w, int lvl)
//ÈçîáðГ*æåГ*ГЁГҐ äåðåâГ* w Г*Г* ГЅГЄГ°Г*Г*ГҐ äèñïëåÿ
//         (ðåêóðñèâГ*ûé Г*ëãîðèòì).
//*w - ГіГЄГ*Г§Г*òåëü Г*Г* êîðåГ*Гј äåðåâГ*.
{
    if  (*w != NULL)
    {
        Print (&((**w).Right), lvl + 1);
        for (int i = 0; i < lvl; i++)
            cout<< "   ";
        cout<< (**w).Key<< endl;
        Print (&((**w).Left), lvl + 1);
    }
}
 
void TREE::Traversal (node **w, ofstream& o)
//*w - ГіГЄГ*Г§Г*òåëü Г*Г* êîðåГ*Гј äåðåâГ*.
{
    if  (*w != NULL)
    {
        Traversal (&((**w).Left), o);
        o<< (**w).Key<< " ";
        Traversal (&((**w).Right), o);
    }
}
0
eddilou
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
19.06.2012, 18:03 #9
Цитата Сообщение от MrGluck Посмотреть сообщение
там его нет
а в авл можете реализовать удаление и удаление всего дерева?
или как это сделать?
и такой вопрос для чего функции
void Traversal (node **, ofstream&);
node** GetTree() {return &Tree;}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2012, 18:03
Привет! Вот еще темы с ответами:

Сложность бинарного поиска - C++
Добрый вечер, решал данную задачу: Девочка загадала число от 1 до N. За какое наименьшее количество вопросов вида «Загаданное тобой...

Реализация бинарного поиска - C++
Здравствуйте. Решил реализовать на С++ бинарный поиск. Вместо массива я взял vector (думаю особой роли это не играет), все бы хорошо, НО....

Бинарное дерево. Обход бинарного дерева (симметрический, прямой и обратный) - C++
Привет всем! Мне надо в курсовой работе написать программу, которая строит бинарное дерево (по вводимым значениям) и потом обходит это...

Исправить реализацию бинарного поиска - C++
Написала бинарный поиск,но что-то не так.Посмотрите. #include &lt;iostream&gt; using namespace std; void main() { const int n...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.06.2012, 18:03
Ответ Создать тему
Опции темы

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