sayeh1991
جمعه 17 اردیبهشت 1389, 18:23 عصر
سلام
ببخشید من با حذف گره از درخت مشکل دارم.یعنی الگوریتمشو بلدم ولی نمیتونم اجراش کنم.میخوام از قسمتی که کامنته استفاده کنم لینک ارور میگیره...
#include<iostream>
using namespace std;
struct Node
{
int data;
Node* left;
Node* right;
Node* parent;
};
void Add(Node* & root, int x);
void Delete(Node*& root, int x);
Node* Find(Node* & root, int x);
bool IsLeaf(Node* & root, int x);
void InOrder(Node* root);
int main()
{
return 0;
}
void Add(Node* & root, int x)
{
if(root==NULL)
{
root=new Node;
root->data=x;
root->left=NULL;
root->right=NULL;
}
else
if(x>root->data)
Add(root,root->right->data);
else
Add (root,root->left->data);
}
/*
void Delete(Node*& root, int x)
{
if(IsLeaf(root,x))
{
}
bool IsLeaf(Node* root,int x)
{
Node*temp=Find(root,x);
if(temp->right==NULL && temp->left==NULL)
return true;
}*/
void InOrder(Node* root)
{
if(root=NULL)
return;
else
{
if(root->left)
InOrder(root->left);
if(root->right)
InOrder(root->right);
}
}
ببخشید من با حذف گره از درخت مشکل دارم.یعنی الگوریتمشو بلدم ولی نمیتونم اجراش کنم.میخوام از قسمتی که کامنته استفاده کنم لینک ارور میگیره...
#include<iostream>
using namespace std;
struct Node
{
int data;
Node* left;
Node* right;
Node* parent;
};
void Add(Node* & root, int x);
void Delete(Node*& root, int x);
Node* Find(Node* & root, int x);
bool IsLeaf(Node* & root, int x);
void InOrder(Node* root);
int main()
{
return 0;
}
void Add(Node* & root, int x)
{
if(root==NULL)
{
root=new Node;
root->data=x;
root->left=NULL;
root->right=NULL;
}
else
if(x>root->data)
Add(root,root->right->data);
else
Add (root,root->left->data);
}
/*
void Delete(Node*& root, int x)
{
if(IsLeaf(root,x))
{
}
bool IsLeaf(Node* root,int x)
{
Node*temp=Find(root,x);
if(temp->right==NULL && temp->left==NULL)
return true;
}*/
void InOrder(Node* root)
{
if(root=NULL)
return;
else
{
if(root->left)
InOrder(root->left);
if(root->right)
InOrder(root->right);
}
}