我無法弄清楚我的插入函數有什麼問題。遞歸/鏈表
基本上在主函數中我要求用戶輸入一個整數,它應該遍歷整個列表RECURSIVELY並按順序插入數字。如果你需要其他東西,請告訴我。
當我打印出來的清單隻打印出0次
In the main:
**This is looped**
printf("Enter the value you want to insert: ");
scanf(" %d", &integer);
current = insert(&head, integer);
temp = current;
while(temp)
{
printf("%d\n", temp->num);
temp = temp->next;
}
node* insert(node** head, int integer)
{
node* temp = malloc(sizeof(node));
node* temp1;
node* new;
if(*head == NULL)
{
temp->num = integer;
temp->next = *head;
*head = temp;
}
else if((*head)->num > integer)
{
temp = *head;
temp1 = temp->next; //breaks the link
temp->next = new; //creates a new node
new->num = integer; //adds int
new->next = temp1; //links new node to previously broken node
*head = temp;
}
else
insert(&((*head)->next), integer);
return(temp);
}
非常感謝!
你在哪裏設置新值? – John3136 2013-03-18 11:32:30
你是什麼意思? – juice 2013-03-18 11:46:23
爲什麼你想用遞歸做這件事有什麼特別的理由嗎?這似乎沒有任何意義。 – Lundin 2013-03-18 11:53:21