ارجو من سيادتكم عمل gui لهذا البرنامج وذلك ضرورى جدا فى اسرع وقت
دة مشروع مقدم فى الكلية بس طلبين gui وانا لم اعلم اى شى عنه ياريت حد يساعدنى وابقى مشكور له جدا
#include <iostream>
#include <fstream>
#include <istream>
using namespace std;
#define p 10
#define N 4
#define loop 100
typedef struct
{
char name1[10];
char name2[10];
char name3[10];
int phone;
}st;
struct Node
{
st data;
Node*left;
Node*right;
};
st data;
Node;
ofstream sat("output.txt");// save avl tree;
void main();
int avltreenods(Node *root,Node *templ,Node *tempr);
void avltreevalue(Node *root,Node *&templ,Node *&tempr,st data,int dir);
void test0(Node* root,Node *&templ,Node *&tempr,st data,int avltreenods);
void erorravltree(Node *root,Node *&templ,Node *&tempr,st data,int &dir);
void Repeatthename(Node *templ,st data);
void insert(Node *root,Node *&templ,Node *&tempr,st data,int dir);
void Searchbyname(Node *temp,Node *ser);
int Searchbyname1(Node *search,Node *&temp,Node *templ,Node *&tempr,int &x,int d);
void printdata(Node *temp);
void saveavltree(Node *temp,ofstream sat);
void deletitem(Node*root,Node*templ,Node*tempr,Node *search,Node*temp,int x,int d);
void deletall(Node*root,Node*templ,Node*tempr,Node*temp);
void newavltree(Node*root,Node*&templ,Node*&tempr,st data,Node*temp);
void avltree(Node*root,Node*&templ,Node*&tempr);
void Repeatthename(Node *templ,st data)
{
if(data.name1==templ->data.name1 && data.name2==templ->data.name2 && data.name3==templ->data.name3)
{
cout<<"This name was introduced in advance \n";
cout<<data.name1;cout<<" ";
cout<<data.name2;cout<<" ";
cout<<data.name3;cout<<" ";
cout<<data.phone;cout<<endl;
}
}
void test0(Node* root,Node *&templ,Node *&tempr,st data,int dir)
{
if(templ->left!=NULL&&tempr->right==NULL&&templ==root&&tempr->left!=NULL&&tempr!=templ)
{
templ=templ->left;
if(root->data.phone>data.phone&&templ->data.phone<=data.phone&&templ->right==NULL)
{
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
templ->right=newNode;
Repeatthename(templ,data);
}
else if(root->data.phone<=data.phone&&tempr->data.phone<=data.phone&&tempr->right==NULL)
{
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
tempr->right=newNode;
Repeatthename(templ,data);
}
}
else if(templ!=NULL&&tempr!=NULL)
{
tempr=tempr->right;
templ=templ->left;
}
else if(templ->right==tempr->left&&tempr->data.phone>data.phone)
{
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
tempr->left=newNode;
Repeatthename(templ,data);
}
else if(templ->left==NULL&&tempr==NULL&&templ->right==NULL&&templ->data.phone<=data.phone)
{
templ=templ->left;
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
tempr->left=newNode;
Repeatthename(templ,data);
}
else if(templ->right==NULL&&root->data.phone>data.phone&&templ->data.phone<=data.phone)
{
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
templ->right=newNode;
Repeatthename(templ,data);
}
else
{
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
templ->right=newNode;
Repeatthename(templ,data);
}
}
void erorravltree(Node *root,Node *&templ,Node *&tempr,st data,int &dir)
{
if(templ==NULL&&tempr!=NULL&&root->data.phone<=data.phone)
{
templ=tempr->left;
tempr=tempr->right;
}
// if templ=tempr=hieght case1
else if(root->data.phone>data.phone&&((templ==tempr)&&(tempr==root)))
{
if(templ->data.phone>data.phone)
{
templ=templ->left;
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
templ->left=newNode;
Repeatthename(templ,data);
}
else
{
templ=templ->left;
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
templ->right=newNode;
Repeatthename(templ,data);
}
}
else if(root->data.phone<=data.phone&&((templ==tempr)&&(tempr==root)))
{
if(tempr->right->data.phone>data.phone)
{
tempr=tempr->right;
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
tempr->left=newNode;
Repeatthename(templ,data);
}
else
{
tempr=tempr->right;
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
tempr->right=newNode;
Repeatthename(templ,data);
}
}
//end;
// if templ=tempr=hieght case2;
else if(root->data.phone>data.phone&&templ->left!=NULL&&templ->right&&tempr->left!=NULL&&tempr->right)
{
if(templ->data.phone>data.phone)
{
templ=templ->left;
if(templ->data.phone>data.phone)
{
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
templ->left=newNode;
Repeatthename(templ,data);
}
else
{
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
templ->right=newNode;
Repeatthename(templ,data);
}
}
else
{
templ=templ->right;
if(templ->data.phone>data.phone)
{
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
templ->left=newNode;
Repeatthename(templ,data);
}
else
{
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
templ->right=newNode;
Repeatthename(templ,data);
}
}
}
else if(root->data.phone<=data.phone&&templ->left!=NULL&&templ->right&&tempr->left!=NULL&&tempr->right)
{
if(tempr->data.phone>data.phone)
{
tempr=tempr->left;
if(tempr->data.phone>data.phone)
{
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
tempr->left=newNode;
Repeatthename(templ,data);
}
else
{
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
tempr->right=newNode;
Repeatthename(templ,data);
}
}
else
{
tempr=tempr->right;
if(tempr->data.phone>data.phone)
{
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
tempr->left=newNode;
Repeatthename(templ,data);
}
else
{
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
tempr->right=newNode;
Repeatthename(templ,data);
}
}
}
//end
// templ>tempr&tempr>templ;
else if(root->data.phone>data.phone&&templ->left!=NULL&&tempr!=NULL)
{
if(templ->data.phone<=data.phone)
{
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
templ->right=newNode;
Repeatthename(templ,data);
}
}
else if(root->data.phone>data.phone&&templ!=NULL&&tempr!=NULL)
{
if(templ->data.phone>data.phone)
{
templ=templ->left;
dir=avltreenods(root,templ,tempr);
avltreevalue(root,templ,tempr,data,dir);
}
else
{
templ=templ->right;
int dir=avltreenods(root,templ,tempr);
avltreevalue(root,templ,tempr,data,dir);
}
}
else if(root->data.phone<=data.phone&&templ!=NULL&&tempr!=NULL)
{
if(tempr->data.phone>data.phone)
{
tempr=tempr->left;
dir=avltreenods(root,templ,tempr);
avltreevalue(root,templ,tempr,data,dir);
}
else
{
tempr=tempr->right;
dir=avltreenods(root,templ,tempr);
avltreevalue(root,templ,tempr,data,dir);
}
}
//end;
else if(templ !=NULL&&tempr==NULL&&root->data.phone>data.phone)
{
templ=templ->left;
tempr=tempr->right;
}
else if(templ->left==NULL&&tempr!=NULL&&root->data.phone>data.phone)
{
if(templ->data.phone>data.phone)
{
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
templ->left=newNode;
Repeatthename(templ,data);
}
else if(templ->data.phone<=data.phone&&tempr->right!=NULL)
{
if(templ->right!=NULL)
{
templ=templ->right;
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
templ->right=newNode;
Repeatthename(templ,data);
}
else
{
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
templ->right=newNode;
Repeatthename(templ,data);
}
}
}
else if(root->data.phone<=data.phone)
{
if(tempr->data.phone>data.phone&&tempr->left==NULL)
{
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
tempr->right=newNode;
Repeatthename(templ,data);
}
else if(tempr->data.phone>data.phone&&tempr->left!=NULL)
{
tempr=tempr->right;
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
tempr->right=newNode;
Repeatthename(templ,data);
}
else if(tempr->data.phone<=data.phone&&templ->right!=NULL)
{
if(tempr->right!=NULL)
{
templ=templ->right;
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
tempr->right=newNode;
Repeatthename(templ,data);
}
else
{
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
tempr->right=newNode;
Repeatthename(templ,data);
}
}
}
}
int avltreenods(Node *root,Node *templ,Node *tempr)
{
if(templ==NULL&&tempr==NULL)
return 1;
else if(templ->left==NULL&&tempr->right==NULL&&tempr->left==NULL&&templ->right==NULL)
return 1;
else if(templ->left==NULL&&tempr->right!=NULL)
return -1;
else if(templ->left!=NULL&&tempr->right==NULL&&templ==root&&tempr->left!=NULL&&tempr!=templ)
return 0;
else if(templ->left!=NULL&&tempr->right==NULL)
return 1;
else if(templ->left==NULL&&tempr->right==NULL)
return -1;
else if(templ->left!=NULL&&tempr->left==NULL)
return -1;
else if(templ->left!=NULL&&tempr==NULL)
return -3;
else if(templ!=NULL&&tempr!=NULL)
return -3;
else
return 0;
}
void avltreevalue(Node *root,Node *&templ,Node *&tempr,st data,int dir)
{
if(root->data.phone>data.phone&&templ->left == NULL&&(dir==1))
{
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
root->left=newNode;
Repeatthename(templ,data);
}
else if(root->data.phone<=data.phone&&tempr->right ==NULL&&(dir==-1))
{
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
tempr->right=newNode;
Repeatthename(templ,data);
}
else if(root->data.phone>data.phone&&templ->data.phone>data.phone&&templ->left==NULL&&(dir==-1))
{
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
templ->left=newNode;
Repeatthename(templ,data);
}
else if(root->data.phone>data.phone&&templ->data.phone<=data.phone&&templ->right==NULL&&(dir==1))
{
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
templ->right=newNode;
Repeatthename(templ,data);
}
else if(root->data.phone<=data.phone&&tempr->data.phone>data.phone&&tempr->left==NULL&&(dir==-1))
{
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
tempr->left=newNode;
Repeatthename(templ,data);
}
else if((root->data.phone)<=(data.phone)&&(tempr->data.phone)<=(data.phone)&&(tempr->right==NULL)&&(dir==1))
{
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
tempr->right=newNode;
Repeatthename(templ,data);
}
else if(dir==0)
{
test0(root,templ,tempr,data,dir);
}
else if(dir==-3)
{
erorravltree(root,templ,tempr,data,dir);
}
else
{
cout<<"Mis in the Phone Number & Is identical to the terms of the program \n";
cout<<data.name1;cout<<" ";
cout<<data.name2;cout<<" ";
cout<<data.name3;cout<<" ";
cout<<data.phone;cout<<endl;
}
}
void insert(Node *root,Node *&templ,Node *&tempr,st data,int dir)
{
dir=avltreenods(root,templ,tempr);
avltreevalue(root,templ,tempr,data,dir);
}
void Searchbyname(Node *temp,Node *ser)
{
if(temp!=NULL)
{
int i;
for(i=0;(ser->data.name1)==(temp->data.name1);i++)
{
}
if (i==10)
{
cout<<temp->data.name1;
cout<<" ";
cout<<temp->data.name2;
cout<<" ";
cout<<temp->data.name3;
cout<<" ";
cout<<temp->data.phone;
cout<<" \n";
Searchbyname(temp->left,ser);
Searchbyname(temp->right,ser);
}
else
{
Searchbyname(temp->right,ser);
Searchbyname(temp->left,ser);
}
}
}
int Searchbyname1(Node *search,Node *&temp,Node *templ,Node *&tempr,int &x,int d)
{
if(temp!=NULL)
{
int i=0;
for(i=0;(((search->data.name1)==(temp->data.name1))&&((search->data.name2)==(temp->data.name2))&&((search->data.name2)==(temp->data.name2)));i++)
{
}
if (i==22)
{
d=d+1;
cout<< (d)<<"- ";
cout<<temp->data.name1;
cout<<" ";
cout<<temp->data.name2;
cout<<" ";
cout<<temp->data.name3;
cout<<" ";
cout<<temp->data.phone;
cout<<" \n";
x=1;
Searchbyname1(search,temp->left,templ,(tempr=temp),x,d);
Searchbyname1(search,temp->right,templ,(tempr=temp),x,d);
return x;
}
else
{
Searchbyname1(search,temp->right,templ,(tempr=temp),x,d);
Searchbyname1(search,temp->left,templ,(tempr=temp),x,d);
}
}
return x;
}
void printdata(Node *temp)
{
if(temp!=NULL)
{
if (temp)
{
cout<<temp->data.name1;
cout<<" ";
cout<<temp->data.name2;
cout<<" ";
cout<<temp->data.name3;
cout<<" ";
cout<<temp->data.phone;
cout<<" \n";
printdata(temp->left);
printdata(temp->right);
}
else
{
printdata(temp->right);
printdata(temp->left);
}
}
}
void saveavltree(Node *temp)
{
char name[30];
char *save;
char*filename=name;
if(temp!=NULL)
{
if (temp)
{
save=temp->data.name1;
sat<<save;sat<<" ";
save=temp->data.name2;
sat<<save;sat<<" ";
save=temp->data.name3;
sat<<save;sat<<" ";
int sav=temp->data.phone;
sat<<sav;sat<<endl;
saveavltree(temp->left);
saveavltree(temp->right);
}
else
{
saveavltree(temp->right);
saveavltree(temp->left);
}
}
}
void deletitem(Node*root,Node*templ,Node*tempr,Node *search,Node*temp,int x,int d)
{
cout<<"!-------------------------------------------------------------!";cout<<endl;
cout<<" Please select number of the user who you want to delete :";cout<<endl;
cout<<"!-------------------------------------------------------------!";cout<<endl;
int c=Searchbyname1(search,temp,templ,tempr,x,d);
cout<<"!-------------------------------------------------------------!";cout<<endl;
templ=temp;
if(templ->left==NULL&&templ->right==NULL&&c==1)
{
delete templ;
cout<<"YES";
}
else if(templ->left!=NULL&&templ->right==NULL&&c==1)
{
tempr->left=templ->left;
delete templ;
cout<<"YES";
}
else if(templ->left==NULL&&templ->right!=NULL&&c==1)
{
tempr->left=templ->right;
delete templ;
cout<<"YES";
}
else if(templ->left!=NULL&&templ->right!=NULL&&c==1)
{
Node*temp=templ->right;
if(temp->left==NULL&&temp->right!=NULL)
{
temp->left=templ->left;
tempr->right=temp;
delete templ;
cout<<"YES";
}
else
{
temp=templ->left;
tempr->left=temp;
temp->right=templ->right;
delete templ;
cout<<"YES";
}
}
else if(c==0)
cout<<"This user does not exist \n";
}
void deletall(Node*root,Node*templ,Node*tempr,Node*temp)
{
if(templ==NULL&&tempr==NULL)
{
if (temp)
{
delete temp;
deletall(root,templ->left,tempr->right,temp);
deletall(root,templ->right,tempr->left,temp);
}
else
{
deletall(root,templ->right,tempr->left,temp);
deletall(root,templ->left,tempr->right,temp);
}
}
}
void newavltree(Node*root,Node*&templ,Node*&tempr,st data,Node*temp)
{
cout<<"Do you want to save the current book? y/n \n";
char nv;
cin>>nv;cout<<endl;
if(nv=='y')
{
saveavltree(temp);
templ=tempr=root;
deletall(root,templ,tempr,temp);
cout<<"What is the name of the book ";
char name;
cin>>name;cout<<endl;
ofstream newavl("new.txt");
cout<<"Please enter the users' data \n";
cout<<"First Name:";cin>>data.name1;cout<<endl;
cout<<"Second Name:";cin>>data.name2;cout<<endl;
cout<<"Third Name:";cin>>data.name3;cout<<endl;
cout<<"Phone Number:";cin>>data.phone;
newavl <<data.name1;newavl <<" ";
newavl <<data.name2;newavl <<" ";
newavl <<data.name3;newavl <<" ";
newavl <<data.phone;newavl <<" ";
newavl <<endl;
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
Node *root,*templ,*tempr;
root=newNode;
templ=tempr=newNode;
Node *temp=root;
char tree='y';
while(tree=='y')
{
cout<<endl;
cout<<"First Name: ";cin>>data.name1;cout<<endl;
cout<<"Second Name: ";cin>>data.name2;cout<<endl;
cout<<"Third Name: ";cin>>data.name3;cout<<endl;
cout<<"Phone Number: ";cin>>data.phone;
newavl <<data.name1;newavl <<" ";
newavl <<data.name2;newavl <<" ";
newavl <<data.name3;newavl <<" ";
newavl <<data.phone;newavl <<" ";
newavl <<endl;
int dir=avltreenods(root,templ,tempr);
insert(root,templ,tempr,data,dir);
cout<<"Do you want to enter another user data y or n : ";cin>>tree;cout<<" \n";
}
}
else
{
cout<<"What is the name of the book ";
char name;
cin>>name;cout<<endl;
ofstream newavl("new.txt");
cout<<"Please enter the users' data \n";
cout<<"First Name: ";cin>>data.name1;cout<<endl;
cout<<"Second Name: ";cin>>data.name2;cout<<endl;
cout<<"Third Name: ";cin>>data.name3;cout<<endl;
cout<<"Phone Number: ";cin>>data.phone;
newavl <<data.name1;newavl <<" ";
newavl <<data.name2;newavl <<" ";
newavl <<data.name3;newavl <<" ";
newavl <<data.phone;newavl <<" ";
newavl <<endl;
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
Node *root,*templ,*tempr;
root=newNode;
templ=tempr=newNode;
Node *temp=root;
char tree='y';
while(tree=='y')
{
cout<<endl;
cout<<"First Name: ";cin>>data.name1;cout<<endl;
cout<<"Second Name: ";cin>>data.name2;cout<<endl;
cout<<"Third Name: ";cin>>data.name3;cout<<endl;
cout<<"Phone Number: ";cin>>data.phone;
newavl <<data.name1;newavl <<" ";
newavl <<data.name2;newavl <<" ";
newavl <<data.name3;newavl <<" ";
newavl <<data.phone;newavl <<" ";
newavl <<endl;
int dir=avltreenods(root,templ,tempr);
insert(root,templ,tempr,data,dir);
cout<<"Do you want to enter another user data y or n : ";cin>>tree;cout<<" \n";
}
}
}
void avltree(Node*root,Node*&templ,Node*&tempr)
{
if(templ!=NULL && tempr!=NULL)
{
if(root)
{
if(templ==root&&tempr==root)
{
cout<<" ";cout<<root->data.phone;cout<<endl;
avltree(root,templ->left,tempr->right);
avltree(root,templ->right,tempr->left);
}
else
{
cout<<" "<<templ->data.phone<<" "<<tempr->data.phone<<endl;
cout<<templ->left->data.phone<<" "<<templ->right->data.phone;cout<<" ";cout<<tempr->left->data.phone<<" "<<tempr->right->data.phone;cout<<endl;
avltree(root,templ->left,tempr->right);
avltree(root,templ->right,tempr->left);
}
}
else
{
avltree(root,templ->left,tempr->right);
avltree(root,templ->right,tempr->left);
}
}
}
int counnods(Node*root,Node*temp,int &count)
{
if(temp!=NULL)
{
count++;
counnods(root,temp->left,count);
counnods(root,temp->right,count);
}
return count;
}
void Searcht3tel(Node *search,Node *&temp)
{
if(temp!=NULL)
{
int i=0;
for(i=0;(((search->data.name1)==(temp->data.name1))&&((search->data.name2)==(temp->data.name2))&&((search->data.name2)==(temp->data.name2)));i++)
{
}
if (i==22)
{
cout<<temp->data.name1;
cout<<" ";
cout<<temp->data.name2;
cout<<" ";
cout<<temp->data.name3;
cout<<" ";
cout<<temp->data.phone;
cout<<" \n";
cin>>temp->data.name1>>temp->data.name2>>temp->data.name3;
}
else
{
Searcht3tel(search,temp->left);
Searcht3tel(search,temp->right);
}
}
}
void main()
{
cout<<"-------------------------------------------------------------------------------- \n";
cout<<"*.*.*.*.*.*.*..*.*.*.*..... Digital phone book program .....*.*.*.*.*.*.*..*.*.*.* \n";
cout<<"*.*.*.*.*.*.*..*.*.*.*.*.*..... Using avl tree .....*.*.*.*.*.*.*.*.*..*.*.*.* \n";
cout<<"-------------------------------------------------------------------------------- \n";
cout<<"enter name of the file you want to read from (without extension) \n";
ifstream file ("data.txt");
file >>data.name1;
file >>data.name2;
file >>data.name3;
file >>data.phone;
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
newNode->data=data;
Node *root,*templ,*tempr;
root=newNode;
templ=tempr=newNode;
Node *temp=root;
while(!file.eof())
{
file >>data.name1;
file >>data.name2;
file >>data.name3;
file >>data.phone;
int dir=avltreenods(root,templ,tempr);
avltreevalue(root,templ,tempr,data,dir);
}
file.close();
for(int i=0;i<=(loop-1);i++)
{
cout<<"\n \n \n \n \n ";
cout<<" *------------------------------* \n";
cout<<" |1-insert |\n";
cout<<" |2-Search by name |\n";
cout<<" |3-print all data phone book |\n";
cout<<" |4-save avl tree |\n";
cout<<" |5-Delet item |\n";
cout<<" |6-New avl tree |\n";
cout<<" |7-print avl tree |\n";
cout<<" |8-print count user |\n";
cout<<" |9-t3tel data |\n";
cout<<" |10-Exit |\n";
cout<<" *------------------------------* \n";cout<<endl;
cout<<"Select the process that you want to be done by....";
int x;
cin>>x;
cout<<"\n \n ";cout<<endl;
if(x==1)
{
// insert
cout<<"Please enter your user data \n";
cout<<"On this form \n";
cout<<"First Name: ";cin>>data.name1;cout<<endl;
cout<<"Second Name: ";cin>>data.name2;cout<<endl;
cout<<"Third Name: ";cin>>data.name3;cout<<endl;
cout<<"Phone Number: ";cin>>data.phone;
cout<<endl;
int dir=avltreenods(root,templ,tempr);
avltreevalue(root,templ,tempr,data,dir);
}
else if(x==2)
{
// Search by name;
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
cout<<"!------------------------------!";cout<<endl;
cout<<"Please enter your user name:";
cin>>data.name1 ;
cout<<"!------------------------------!";
cout<<endl;
newNode->data=data;
Node *ser;
ser=newNode;
cout<<" \n";
cout<<"the user search this is: \n";
temp=root;
Searchbyname(temp,ser);
}
else if(x==3)
{
// print all data phone book;
temp=root;
cout <<" *********************************** \n ";
cout <<" data of phone book \n ";
cout <<" *********************************** \n ";cout<<endl;
printdata(temp);
cout <<"_____________________________________________________________________________ \n ";
}
else if(x==4)
{
// save avl tree;
cout<<"enter name of the file you want to save avl tree :";
temp=root;
saveavltree(temp);
sat.close();
}
else if(x==5)
{
// delet item;
cout<<" ******************************************";cout<<endl;
cout<<"( enter name of the file you want to delet ) ";cout<<endl;
cout<<" ******************************************";cout<<endl;
templ=root;
temp=templ;
tempr=NULL;
Node *n=new Node;
n->left=NULL;
n->right=NULL;
cout<<"firist name: ";
cin>>data.name1;
cout<<endl;
cout<<"Second Name: ";
cin>>data.name2;
cout<<endl;
cout<<"Third Name: ";
cin>>data.name3;
cout<<endl;
n->data=data;
Node *search;
search=n;
int d=0;
int x=0;
cout<<" \n";
deletitem(root,templ,tempr,search,temp,x,d);
}
else if(x==6)
{
//New avl tree ;
newavltree(root,templ,tempr,data,temp);
}
else if(x==7)
{
//print avltree styel avltree ;
cout<<"the data in styel avl tree";cout<<endl;
templ=tempr=root;
avltree(root,templ,tempr);
}
// print count nods;
else if(x==8)
{
temp=root;
int count=0;
cout<<"count uesr phone: ";
int h=counnods(root,temp,count);
cout<<h;
}
// t3tel data user;
else if(x==9)
{
temp=root;
cout<<"!*************************************************************!";cout<<endl;
cout<<"| Please enter the number you want to modify the user data |";cout<<endl;
cout<<"!*************************************************************!";cout<<endl;
printdata(temp);
cout<<"!*************************************************************!";cout<<endl;
Node *newNode=new Node;
newNode->left=NULL;
newNode->right=NULL;
cout<<"!------------------------------!";cout<<endl;
cout<<"Please enter your user name:";
cin>>data.name1;
cin>>data.name2;
cin>>data.name3;
cout<<"!------------------------------!";
cout<<endl;
newNode->data=data;
Node *search;
search=newNode;
Searcht3tel(search,temp);
cout<<endl;
}
else
i=loop;
}
}