【发布时间】:2011-05-02 04:38:40
【问题描述】:
以下 C 代码不起作用(它只是清除列表):
/* Takes linkedlist of strings */
static int insertSort (linkedlist *list) {
linkedlist sorted;
void *data;
node *one, *two, *newnode;
unsigned int comp, x;
removeHeadLL (list, &data);
initLL (&sorted);
addHeadLL (&sorted, data);
while (list->count) {
removeHeadLL (list, &data);
two = sorted.head;
x = 0;
for (comp = strcomp (data, two->data) ; comp > 1 && x < sorted.count ; x++) {
one = two;
two = two->next;
}
if (x) {
newnode = malloc (sizeof(node));
newnode->next = two;
newnode->data = data;
one->next = newnode;
}
else {
addHeadLL(&sorted, data);
}
(sorted.count)++;
}
destroythis (list);
list = &sorted;
return 0;
}
【问题讨论】:
-
"以下 C 代码不起作用:" - 咳咳!什么不起作用?
-
对不起,我有点含糊,因为我有点着急。结果是我得到了一个空白的链表——虽然不知道会发生什么。
标签: c algorithm list sorting pointers