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

Бинарное дерево поиска - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Поправить немного код http://www.cyberforum.ru/cpp-beginners/thread891524.html
#include <string.h> #include <stdio.h> #include <stdlib.h> #include <iostream> using namespace std; int main() { int n,j,f,k; char ar1; char ar2;
C++ Алгоритм Дейкстра Есть у кого исходник кода,чтобы проверяло достижимость из выбранного города во все остальные? или помогите, пожалуйста, выделить вот отсюда этот нужный алгоритм : AnsiString bufS,*bufD=new AnsiString,bufP; // ñòðîêè êîòîðûå íóæíû äëÿ âûâîäà ðåçóëüòàòà íà ýêðàí int *S=new int,*D=new int, // массивы,необходимые для алгоритма *P=new int,w,min; // массив... http://www.cyberforum.ru/cpp-beginners/thread891521.html
C++ Список с приоритетом, не работает программа
Помогите пожалуйста отладить программу. Данные в список записываются, но не удаляются и не выводятся. В чем ошибка? // QwP.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> using namespace std; class QueryIsEmpty: public std::exception
определить, в каком случае данные обманчивы.И вывести номер обманчивого отрезка C++
вообщем нам даны числа m и n m-длина луча на котором буду отрезки далее идет n*3 чисел в каждой строке по 3 числа x y z x-откуда начинается y-где кончается z-какая минимальная цифра написана на этом отрезке нужно определить, в каком случае данные обманчивы.И вывести номер обманчивого отрезка например
C++ Объединение каждой последовательной пары строк в одну строку, если её длина не будет превышать заданную http://www.cyberforum.ru/cpp-beginners/thread891510.html
Помогите решить задачу. "Объединение каждой последовательной пары строк в одну строку, если её длина не будет превышать заданную"
C++ Вводится номер семестра N <= 10. Вывести фразу «Я проучился N семестров », согласовав слово« семестр »с числом N. Определить номер курса начало кода есть , но он не показывает что нужно , там надо наверное через if-else !! но не получается:ireful: #include <stdio.h> #include <conio.h> #include <locale.h> void main (int sem,int kurs ) { setlocale (0, "Russian"); int N=0,K=0; printf( "Введите количество семестров N:" ); scanf_s("%d", &N); //get N from std input подробнее

Показать сообщение отдельно
kostya990
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 12
05.06.2013, 01:03     Бинарное дерево поиска
Пожалуйста помогите найти ошибку. Функции поиска и удаления не работают.
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
#include<iostream>
using namespace std;
 struct Elem{
               int Key;
               Elem *left;
               Elem *right;
               };
 void AddElement( Elem R, int val )
 {
 if(val==R.Key) return;
 if(val>R.Key){
               if(R.right==NULL){
                                 R.right=new Elem;
                                 R.right->Key=val;
                                 }
               else
                   AddElement(*R.right,val);
               }
 else{
      if(R.left=NULL){
                     R.left=new Elem;
                     R.left->Key=val;
                     }
      else{
          //AddElement(*R.left,val);
          Elem *root;
          root=new Elem;
          root->Key=val;
          root->left=NULL;
          root->right=NULL;
          R=*root;
          }
      }
 }
 int FindElement( Elem R, int val )
 {
 if(R.Key==val)return R.Key;
 if(R.Key>val)return FindElement(*R.right, val);
 if(R.Key<val)return FindElement(*R.left, val);
 }
 bool DeleteElement(Elem R, int target)
 {
 if(R.Key==target){
                   if((R.right!=NULL)&&(R.left!=NULL))
                                                      {
                                                      Elem P=*R.left;
                                                      if(P.right==NULL){
                                                                        R.Key=P.Key;
                                                                        R.left=P.left;
                                                                        }
                                                      else{
                                                           while((P.right->right)!=NULL)
                                                           R=*P.right;
                                                           R.Key=P.right->Key;
                                                           P.right=NULL;
                                                           }
                                                      return false;
                                                      }
                   else
                        return true;
                   }
 if(!DeleteElement(*R.left,target)){
                                  if((R.left->left)==NULL)
                                                       R.left=(R.left->right);
                                  else
                                      R.left=(R.left->left);
                                  return false;
                                  }
 if(!DeleteElement(*R.right,target)){
                                  if(R.right->left==NULL)
                                                        R.right=R.right->right;
                                  else
                                      R.right=(R.right->left);
                                  return false;
                                  }
 return false;                    
 }
 int main()
 {
 Elem R;
 int val,target,n;
 cout<<"Vveditekol el: ";
 cin>>n;
 cout<<"Zapolnite derevo->"<<endl;
 for(int i=0;i<n;i++){
                      cin>>val;
                      AddElement(R, val);
                      }
// cout<<"Vedite znachenie kotoroe hotite naiti: ";
 //cin>>val;
// FindElement(R,val);
 //cout<<R.Key;
 cin>>target;
 DeleteElement(R,target);
 system("pause");
 return 0;
 }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru