0
嘿,我需要以排序的方式插入元素到鏈接列表中。每個元素都有一個isbn,我需要鏈接列表進行排序。它的工作方式是因爲它將最小的元素插入到頭部,但剩下的部分似乎以隨機方式排序。 這是我的代碼C按照排序的方式插入元素的鏈接列表
void insertABook(linkedlist *root, linkedlist *newbook)
{
if ((root==NULL) && (root->ptr==NULL))
{
root->ptr=newbook;
}
else
{
linkedlist *next = root;
while((next->ptr != NULL) && (next->isbn < newbook->isbn))
{
next = next->ptr;
}
newbook->ptr=next->ptr;
next->ptr=newbook;
}
}
根參數是虛節點(NULL)和newbook參數是要插入的新元素。我使用這種方法逐個添加元素。
在'(下一步 - >國際標準書號ISBN < newbook->)'你是不是比較的ISBN,但該字符串的指針。使用'(strcmp(next-> isbn,newbook-> isbn)<0)'。我知道國際標準書號是一個字符串不是數字,因爲最後一個字符可以是X. – 2014-12-04 22:31:41
沒關係我已經找到解決方案的問題是我比較next-> isbn數字而不是next-> ptr-> isbn – 2014-12-04 22:37:48
'if ((root == NULL)&&(root-> ptr == NULL))'?? – BLUEPIXY 2014-12-04 22:45:38