2014-11-08 60 views
-1

我试图创造一个我检查,如果第二或其他第二个已在先前的元素创建智能链表

例如我想补充ABCA

存在后链表

应该通知一个已经在链表

不知道如何去了解这个逻辑

到目前为止,这是我一直在思考

...创建结构来做到这将是对列表进行排序

typedef struct check 
{ 
    char *names; 
    struct check *next; 
} HERE; 

some_func(*char name) 
{ 

    HERE *all = malloc(sizeof(HERE)); 
    all->names = 
    all->next = NULL; 


while(all != NULL) 
{ 
    // if strcmp ... 

} 

} 

回答

0

的一种方式(标签阵列插入排序是明智的,如果你从实时用户输入的工作),并发现后新条目的安放位置,检查前后的条目是否相同(取决于您的排序代码,您只需要检查一个或另一个)。这只需要比插入排序的搜索更多的数据读取,并且不需要额外的移动(即使是标签值),所以应该少添加排序时间并避免代码的过度复杂化。