c-链表中的插入和匹配功能



此处插入的函数似乎有什么问题?我无法理解。

它应该是链表数据结构中的一个简单插入函数,其中变量需要复制到分配的内存中,如果没有错误,它应该返回0。

int insert(char *s, char *p, char *o) {
struct node *new = (struct node *) malloc(sizeof(struct node));
new->Subject = s;
new->Predicate = p;
new->Object = o;
struct node *temp = head;
while (temp->next != NULL ) {
if (strcmp(temp->next->Subject, s) > 0) {
break;
} else if (strcmp(temp->next->Subject, s) == 0) {
if (strcmp(temp->next->Predicate, p) > 0) {
break;
} else if (strcmp(temp->next->Predicate, p) == 0) {
if (strcmp(temp->next->Object, o) > 0) {
break;
} else if (strcmp(temp->next->Object, o) == 0) {
return 1;
}
}
}
temp = temp->next;
}
new->next = temp->next;
temp->next = new;
return 0;
}

temp->next仍然是null或垃圾值
使用:

new->next = temp

相关内容

  • 没有找到相关文章

最新更新