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