-1
我想寫一個代碼插入元素到一個二叉樹沒有遞歸。但我面臨的問題是,每次我嘗試插入一個節點,它不會插入和樹不如預期般增長。只有第一個元素留在樹中。二叉樹代碼錯誤
void insert(struct node **head1,int data1)
{
struct node *temp1,*temp;
temp=*head1;
struct node *datatemp,*prevtemp;
while(temp!=NULL)
{
if(temp->data < data1)
{
temp=temp->right;
}
else if(temp->data > data1)
{
temp=temp->left;
}
}
datatemp=(struct node *)malloc(sizeof(struct node));
datatemp->data=data1;
datatemp->right=NULL;
datatemp->left=NULL;
temp=datatemp;
}
請幫助..我試圖調試,但我無法找到我的邏輯錯誤。
您可能想將您的標記從C++轉換爲c,因爲您明顯使用C語言。另外,請閱讀:[mcve]。 – anatolyg
你認爲這個'temp = datatemp;'應該做什麼? – StoryTeller
請確保您處理您嘗試插入的第二個號碼與第一個號碼相同的情況。您的代碼處理< & >,但不是== – attaboy182