如何在二叉樹中遞歸執行插入操作,以便始終從左側填充?以下是我寫的代碼,這當然是錯誤的......我在遞歸有點弱...請提供您的建議...在二叉樹中插入
void insert(node **root,int n)
{
node *temp;
temp=(node *)malloc(sizeof(node));
temp->data=n;
temp->lchild=NULL;
temp->rchild=NULL;
if(*root==NULL)
{
*root=temp;
return;
}
if((*root)->lchild==NULL)
{
(*root)->lchild=temp;
return;
}
if((*root)->rchild==NULL)
{
(*root)->rchild=temp;
return;
}
insert(&((*root)->lchild),n);
insert(&((*root)->rchild),n);
return;
}
您需要知道樹中有多少元素才能平衡它 - 或者您將獲得一個列表(左 - >左 - >左 - >左等)。 – sje397 2012-03-12 14:56:13
告訴我們樹是否應該平衡,完整或搜索二叉樹。它在插入策略上有所不同。 – Matteo 2012-03-12 15:12:55
它只有一個二叉樹.....所以你需要在插入時跟蹤二叉樹的策略... – mmuttam 2012-03-12 16:01:40