#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
struct node{
char q[ 20 ] ;
int nomer;
node * l, * r;
} ;
node * tree = NULL ;
int Delete( node ** t, char target[ ] , int target1) ;
void push( char a[ ] , int n, node ** t) ;
void search( char a[ ] , node * t) ;
void print ( node * t, int u) ;
void push( char a[ ] , int n, node ** t) {
if ( ( * t) == NULL ) {
* t = new node;
strcpy_s( ( * t) - > q, a) ;
( * t) - > nomer = n;
( * t) - > l = ( * t) - > r = NULL ;
return ;
}
if ( strcmp ( a,( * t) - > q) > 0 )
push( a, n, & ( ( * t) - > r) ) ;
else if ( strcmp ( a,( * t) - > q) < 0 )
push( a, n, & ( ( * t) - > l) ) ;
}
void search( char a[ ] , node * t) {
if ( t == NULL )
return ;
if ( strcmp ( a, t- > q) == 0 ) {
strcpy_s( t- > q, "Andrey" ) ;
return ;
}
search( a, t- > l) ;
search( a, t- > r) ;
}
int Delete( node ** t, char target[ ] ) {
if ( ( * t) == 0 )
return 0 ;
if ( strcmp ( ( * t) - > q,target) == 0 )
{
if ( ( ( * t) - > l! = 0 ) && ( ( * t) - > r! = 0 ) )
{
node * P= new node;
P= ( * t) - > l;
if ( P- > r== 0 )
{
strcpy_s( ( * t) - > q, P - > q) ;
( * t) - > nomer = P- > nomer;
( * t) - > l = P- > l;
}
else
{
while ( P- > r- > r! = 0 )
P = P- > r;
strcpy_s( ( * t) - > q, P- > r- > q) ;
( * t) - > nomer = P- > nomer;
P- > r= 0 ;
}
return 0 ;
}
else
return 1 ;
}
if ( Delete( & ( ( * t) - > l) , target) )
{
if ( ( * t) - > l- > l == 0 )
( * t) - > l = ( * t) - > l- > r;
else
( * t) - > l = ( * t) - > l- > l;
return 0 ;
}
if ( Delete( & ( ( * t) - > r) , target) )
{
if ( ( * t) - > r- > l == 0 )
( * t) - > r = ( * t) - > r- > r;
else
( * t) - > r = ( * t) - > r- > l;
return 0 ;
}
return 0 ;
}
void print ( node * t,int u)
{
if ( t== NULL ) {
return ;
}
print( t- > l,++ u) ;
for ( int i= 0 ; i< u; ++ i)
printf ( " - " ) ;
printf ( "%s %d\n " ,t- > q, t- > nomer) ;
u-- ;
print( t- > r,++ u) ;
}
void main( ) {
int n, n1;
char name[ 20 ] ;
printf ( "Enter nuber of elements " ) ;
scanf_s( "%d" , & n) ;
for ( int i = 0 ; i < n; i++ ) {
printf ( "\n Enter name: " ) ;
fflush ( stdin ) ;
gets_s( name) ;
printf ( "\n Enter nomber: " ) ;
scanf_s( "%d" , & n1) ;
push( name, n1, & tree) ;
}
printf ( "your tree\n " ) ;
print( tree, 0 ) ;
char a[ 20 ] ;
printf ( "Enter name for search " ) ;
fflush ( stdin ) ;
gets_s( a) ;
search( a, tree) ;
printf ( "\n \n your tree\n " ) ;
print( tree, 0 ) ;
char b[ 20 ] ;
printf ( "\n enter name for delete: " ) ;
fflush ( stdin ) ;
gets_s( b) ;
Delete( & tree, b) ;
printf ( "\n \n your tree after deletion of element\n " ) ;
print( tree, 0 ) ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDx0aW1lLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgpzdHJ1Y3Qgbm9kZXsKCWNoYXIgcVsyMF07CglpbnQgbm9tZXI7Cglub2RlICpsLCAqcjsKfTsKbm9kZSAqdHJlZSA9IE5VTEw7CgppbnQgRGVsZXRlKG5vZGUgKip0LCBjaGFyIHRhcmdldFtdLCBpbnQgdGFyZ2V0MSk7CnZvaWQgcHVzaChjaGFyIGFbXSwgaW50IG4sIG5vZGUgKip0KTsKdm9pZCBzZWFyY2goY2hhciBhW10sIG5vZGUgKnQpOwp2b2lkIHByaW50IChub2RlICp0LCBpbnQgdSk7Cgp2b2lkIHB1c2goY2hhciBhW10sIGludCBuLCBub2RlICoqdCl7CglpZigoKnQpID09IE5VTEwpewoJCSp0ID0gbmV3IG5vZGU7CgkJc3RyY3B5X3MoKCp0KSAtPiBxLCBhKTsKCQkoKnQpIC0+IG5vbWVyID0gbjsgCgkJKCp0KS0+bCA9ICgqdCktPnIgPSBOVUxMOwoJCXJldHVybjsKCX0KCWlmKHN0cmNtcChhLCgqdCkgLT4gcSkgPiAwKSAKCQlwdXNoKGEsIG4sICYoKCp0KS0+cikpOwoJZWxzZSBpZihzdHJjbXAoYSwoKnQpIC0+IHEpIDwgMCkKCQlwdXNoKGEsIG4sICYoKCp0KS0+bCkpOwp9CnZvaWQgc2VhcmNoKGNoYXIgYVtdLCBub2RlICp0KXsKCWlmKHQgPT0gTlVMTCkKCQlyZXR1cm47CglpZihzdHJjbXAoYSwgdC0+cSkgPT0gMCl7CgkJc3RyY3B5X3ModC0+cSwgIkFuZHJleSIpOwoJCXJldHVybjsKCX0KCXNlYXJjaChhLCB0LT5sKTsKCXNlYXJjaChhLCB0LT5yKTsKfQppbnQgRGVsZXRlKG5vZGUgKip0LCBjaGFyIHRhcmdldFtdKXsKCWlmICggKCp0KSA9PSAwICkgCgkJcmV0dXJuIDA7CglpZiAoc3RyY21wKCgqdCktPnEsdGFyZ2V0KSA9PSAwICkKCXsKCQlpZigoKCp0KS0+bCE9MCkmJigoKnQpLT5yIT0wKSkKCQl7CgkJCW5vZGUgKlA9bmV3IG5vZGU7CgkJCVA9KCp0KS0+bDsKCQkJaWYoUC0+cj09MCkKCQkJewoJCQkJc3RyY3B5X3MoKCp0KS0+cSwgUCAtPiBxKTsKCQkJCSgqdCktPm5vbWVyID0gUC0+bm9tZXI7CgkJCQkoKnQpLT5sID0gUC0+bDsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCXdoaWxlIChQLT5yLT5yIT0wKSAKCQkJCQlQID0gUC0+cjsgCgkJCQlzdHJjcHlfcygoKnQpLT5xLCBQLT5yLT5xKTsKCQkJCSgqdCktPm5vbWVyID0gUC0+bm9tZXI7CgkJCQlQLT5yPTA7CgkJCX0KCQkJcmV0dXJuIDA7CgkJfSAKCQllbHNlIAoJCQlyZXR1cm4gMTsKCX0KCWlmKERlbGV0ZSggJigoKnQpLT5sKSwgdGFyZ2V0KSkKCXsKCQlpZiAoICgqdCktPmwtPmwgPT0gMCApCgkJCSgqdCktPmwgPSAoKnQpLT5sLT5yOwoJCWVsc2UKCQkJKCp0KS0+bCA9ICgqdCktPmwtPmw7CgkJCXJldHVybiAwOwoJfQoJaWYoRGVsZXRlKCYoKCp0KS0+ciksIHRhcmdldCkpCgl7CgkJaWYgKCAoKnQpLT5yLT5sID09IDAgKQoJCQkoKnQpLT5yID0gKCp0KS0+ci0+cjsgCgkJZWxzZQoJCQkoKnQpLT5yID0gKCp0KS0+ci0+bDsKCQlyZXR1cm4gMDsKCX0KCXJldHVybiAwOwp9Cgp2b2lkIHByaW50IChub2RlICp0LGludCB1KSAKewoJaWYgKHQ9PU5VTEwpewoJCXJldHVybjsgICAKICAgIH0KICAgIAogICAgcHJpbnQodC0+bCwrK3UpOwogICAgZm9yIChpbnQgaT0wO2k8dTsrK2kpIAoJCXByaW50ZigiIC0gIik7CglwcmludGYoIiVzICVkXG4iLHQtPnEsIHQtPm5vbWVyKTsKICAgIHUtLTsKICAgIAogICAgcHJpbnQodC0+ciwrK3UpOwp9CgoKdm9pZCBtYWluKCl7CglpbnQgbiwgbjE7CgljaGFyIG5hbWVbMjBdOwoJcHJpbnRmKCJFbnRlciBudWJlciBvZiBlbGVtZW50cyAiKTsKCXNjYW5mX3MoIiVkIiwgJm4pOwoKCWZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspewoJCXByaW50ZigiXG5FbnRlciBuYW1lOiAiKTsKCQlmZmx1c2goc3RkaW4pOwoJCWdldHNfcyhuYW1lKTsKCQlwcmludGYoIlxuRW50ZXIgbm9tYmVyOiAiKTsKCQlzY2FuZl9zKCIlZCIsICZuMSk7CgkJcHVzaChuYW1lLCBuMSwgJnRyZWUpOwoJfQoJcHJpbnRmKCJ5b3VyIHRyZWVcbiIpOwoJcHJpbnQodHJlZSwgMCk7CgoJY2hhciBhWzIwXTsKCXByaW50ZigiRW50ZXIgbmFtZSBmb3Igc2VhcmNoICIpOwoJZmZsdXNoKHN0ZGluKTsKCWdldHNfcyhhKTsKCXNlYXJjaChhLCB0cmVlKTsKCglwcmludGYoIlxuXG55b3VyIHRyZWVcbiIpOwoJcHJpbnQodHJlZSwgMCk7CgoJY2hhciBiWzIwXTsKCXByaW50ZigiXG5lbnRlciBuYW1lIGZvciBkZWxldGU6ICIpOwoJZmZsdXNoKHN0ZGluKTsKCWdldHNfcyhiKTsKCURlbGV0ZSgmdHJlZSwgYik7CglwcmludGYoIlxuXG55b3VyIHRyZWUgYWZ0ZXIgZGVsZXRpb24gb2YgZWxlbWVudFxuIik7CglwcmludCh0cmVlLCAwKTsKfQ==
compilation info
prog.cpp: In function ‘void push(char*, int, node**)’:
prog.cpp:20:24: error: ‘strcpy_s’ was not declared in this scope
strcpy_s((*t) -> q, a);
^
prog.cpp: In function ‘void search(char*, node*)’:
prog.cpp:34:26: error: ‘strcpy_s’ was not declared in this scope
strcpy_s(t->q, "Andrey");
^
prog.cpp: In function ‘int Delete(node**, char*)’:
prog.cpp:51:29: error: ‘strcpy_s’ was not declared in this scope
strcpy_s((*t)->q, P -> q);
^
prog.cpp:59:30: error: ‘strcpy_s’ was not declared in this scope
strcpy_s((*t)->q, P->r->q);
^
prog.cpp: At global scope:
prog.cpp:103:11: error: ‘::main’ must return ‘int’
void main(){
^
prog.cpp: In function ‘int main()’:
prog.cpp:107:18: error: ‘scanf_s’ was not declared in this scope
scanf_s("%d", &n);
^
prog.cpp:112:14: error: ‘gets_s’ was not declared in this scope
gets_s(name);
^
prog.cpp:123:10: error: ‘gets_s’ was not declared in this scope
gets_s(a);
^
stdout