,   CyberForum.ru

switch ?! - C++

 
katrin_
0 / 0 / 0
: 02.07.2011
: 8
07.07.2011, 12:27     switch ?! #1
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
//////////////////////////////////////////////////////
//                                                  //
// Ñîçä*òü ïðîãð*ììó äëÿ ð*áîòû ñ áè**ð*ûì äåðåâîì, //
// ðå*ëèçóþùóþ ôó*êöèè: äîá*âèòü ýëåìå*ò,           //
// óä*ëèòü ýëåìå*ò, âûâåñòè â âèäå "äåðåâ*"         //
//                                                  //
//////////////////////////////////////////////////////
 
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <iostream.h>
#include <new.h>
#define maximal 50
struct tree_el
{
int a;  //a-÷èñëî
tree_el *left;      //óê*ç*òåëü ëåâîãî ïîääåðåâ*
tree_el *right;    //óê*ç*òåëü ïð*âîãî ïîääåðåâ*
};
void add_item(int,struct tree_el **); // äîá*âëå*èå ýëåìå*ò*
void out_tree(struct tree_el*, int,int,int); // âûâîä äåðåâ*
void delet_item(struct tree_el**, int); // óä*ëå*èå ýëåìå*ò*
void view_menu(void);  //âûâîä â ìå*þ
void main(void)
 
{
struct tree_el *root=NULL;  //óê*ç*òåëü ** êîðå*ü
int mas[maximal];           //ì*ññèâ äëÿ õð**å*èÿ äåðåâ*
int k,m,a;
 
do
{
clrscr();
view_menu();       //âûâîä ìå*þ
//m=getch()-'0';
fflush(stdin);
scanf("%d",&m);
switch(m)      //îáð*áîòê* âûáîð*
{case 1: clrscr();
         cout<<"Dobavlenie uzla"<<endl;
         cout<<"vvedite chislo:"; cin>>a;
         add_item(a,&root); break;
 
 case 2: clrscr();
         cout<<"vyvod dereva"<<endl;
         out_tree(root,1,80,7);
          break;
     
 case 3: clrscr();
         cout<<"Udalenie uzla"<<endl;
         cout<<"vvedite chislo:";
         cin>>a;
         delet_item(&root,a);
         break;
        }
    } while (m);
}
 
 
void add_item(int a,struct tree_el **p) // äîá*âëå*èå ýëåìå*ò*
{int c;
if (!*p)  // åñëè ïîääåðåâ* *åò
{set_new_handler(0);
    if ((*p=new struct tree_el)==NULL)
            {cout<<"ne hvataet OP"<<endl;
            return;
            }
   (*p)->a=a;    //ñîçä*åì *îâûé ýëåìå*ò
   (*p)->left=(*p)->right=NULL;
}
else
{c=((*p)->a)-a;
    if (c>0) add_item(a,&((*p)->left)); //èäåì âëåâî
    else if (c<0) add_item(a,&((*p)->right)); //èäåì âïð*âî
      else cout <<"element"<<a<<"uzhe est"<<endl;
      }
      }
 
 void out_tree(struct tree_el *p, int lb,int rb,int r) // âûâîä â âèäå äåðåâ*
 // lb-ëåâ*ÿ ãð**èö* ïîääåðåâ*
 // rb-ïð*â*ÿ ãð**èö* ïîääåðåâ*
 { if (p)    //åñëè ïîääåðåâî *å *óëåâîå
 {gotoxy ((lb+rb)/2,r);    //êóðñîð ìåæäó ãð**èö*ìè ïîääåðåâ* óðîâ*ÿ r
 cout<<p->a<<endl;     //âûâîäèì êîðå*ü ïîääåðåâ*
 out_tree(p->left,lb,(lb+rb)/2,r+1);  //âûâîäèì ëåâîå ïîääåðåâî
 out_tree(p->right,(lb+rb)/2,rb,r+1);  //âûâîäèì ïð*âîå ïîääåðåâî
 }
 }
 
 void delet_item(tree_el**p, int a) // óä*ëå*èå ýëåìå*ò*
 {if (!*p)                           //åñëè ïðîøëè äåðåâî
 {cout<<"Takogo elementa net"<<endl;
 return;
 }
 if (a<(*p)->a) delet_item(&(*p)->left,a);     //èäåì âëåâî
 else if  (a>(*p)->a) delet_item(&(*p)->right,a);          //èäåì âïð*âî
 else
 {tree_el *lt, *rt;  //è**÷å óä*ëÿåì ýëåìå*ò
 lt=(*p)->left;      //ñîõð**ÿåì ñâÿçè
 rt=(*p)->right;    //ñîõð**ÿåì ñâÿçè
 delete *p;          //óä*ëÿåì óçåë
 *p=rt;        //** åãî ìåñòî - ïð*âîå ïîääåðåâî
 while (*p)    //ïî ïð*âîìó ïîääåðåâó
 p=&(*p)->left;  //ñïóñê*åòñÿ âëåâî äî ëèñò*
 *p=lt;        //åñëè ïð*âîãî ïîääåðåâ* *å áûëî, òî ëåâîå ñò**åò ** ìåñòî óä*ëå**îãî óçë*
 }
 }
 
void view_menu(void)  //âûâîä â ìå*þ
{clrscr();
   cout<<"1-dobavlenie uzla"<<endl;
   cout<<"2-vyvod dereva"<<endl;
   cout<<"3-udalenie uzla"<<endl;
   cout<<"0-vyhod"<<endl;
   cout<<"Nazhmite sootvetstvujuschuju klavischu"<<endl;
}
, , , ..(((

14
katrin_
C++
1
2
3
4
 case 2: clrscr();
         cout<<"vyvod dereva"<<endl;
         out_tree(root,1,80,7);
          break;
c>>a;
: vyvod dereva, ((( ?! ?!(((

1
C++
1
2
3
4
5
case 2: clrscr();
         cout<<"vyvod dereva"<<endl;
         out_tree(root,1,80,7);
         cin>>a; //    =)
          break;
Similar
41792 / 34177 / 6122
: 12.04.2006
: 57,940
07.07.2011, 12:27     switch ?!
:

C++
n- . C++
sound,delay,nosound.... C++
C++ ""
? C++
.
OstapBender
   OstapBender
581 / 519 / 35
: 22.03.2011
: 1,585
07.07.2011, 21:15     switch ?! #2
enter-.
#include <windows.h>
cin>>a;
getch();

: .
katrin_
0 / 0 / 0
: 02.07.2011
: 8
07.07.2011, 23:38  []     switch ?! #3
getch();
... ...
, ,
#include <windows.h>

accept
4838 / 3237 / 165
: 10.12.2008
: 10,682
08.07.2011, 10:47     switch ?! #4
katrin_
, , ,
?
, ?

C++
1
gotoxy ((lb+rb)/2,r);

,
Yandex
08.07.2011, 10:47     switch ?!

: 16:26. GMT +3.
- , ,
-
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
@Mail.ru