项目需求,往AVL树插入节点,多长时间能保证插入的节点不重复,回头想了个1秒内不重复的策略。(项目采用的是libubox的avl的库)
程序大概可以这样写:
static time_t cur_sec=0;
while(1)
{
gettimeofday(&now,NULL);
//每次循环后,会比较下现在的时间和上次时间的秒数是否相同,在这种情况下就是相差是否1s
if(cur_sec != now.tv_sec){
cur_sec=now.tv_sec;
avl_remove_all_elements(*,*,*,*);
}
//libubox插入节点会比较当前节点,是否在树存在和它一样的节点 ;如果存在,则不进行插入
avl_insert(*,*);
}