创建智能链表

时间:2014-11-08 19:05:22

标签: c struct

我正在尝试创建一个链接列表,我正在检查第二个或其他第二个之后是否已经存在于前面的元素中

例如我想添加一个b c a

它应该通知a已经在链表中

不确定如何解决这个逻辑

到目前为止,这正是我在考虑的问题

...创建结构

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 ...

 }

}

1 个答案:

答案 0 :(得分:0)

执行此操作的一种方法是对列表进行排序(如果您正在使用实时用户输入,则标记数组插入排序是明智的),并在找到新条目的静止位置后,检查如果之前或之后的条目(取决于您的排序代码,您只需要检查一个或另一个)是相同的。这只需要比插入排序搜索更多的数据读取,并且没有额外的移动(甚至是标记值),因此应该对排序时间添加很少,并避免代码过度复杂化。