数据结构和算法
Qinxiangling
这个作者很懒,什么都没留下…
展开
-
libevent中的小根堆(二)
上次说到向libevent小根堆中添加事件,这次来说一下删除事件:假如堆中的数据是这样儿存放滴:现在删除值为31的元素,看删除的代码:void min_heap_shift_up_(min_heap_t* s, unsigned hole_index, struct event* e){ unsigned parent = (hole_index - 1) / 2; /* 父节点 */ while(hole_index && min_heap_elem_great原创 2020-06-22 08:44:18 · 200 阅读 · 0 评论 -
libevent中的小根堆(一)
一、何为小根堆?小根堆是一种数据结构,是一种完全二叉树,类似对应的还有大根堆,如下:小根堆适用于每次取出最小值,所以每次都可以通过取堆顶的方式来获取最小值,获取最小值后,并且进行移除,则次小值将会排在堆顶,大根堆则相反。小根堆规则:1.父节点的值小于或等于子节点的值2.i结点的父结点下标为(i–1)/23.左右子结点下标分别为2 * i + 1和2 * i + 2二、举例:min_heap_t中的元素p表示元素的二级指针,n表示小根堆里有几个元素,a表示p指向的内存的大小,在min_he原创 2020-06-10 18:55:33 · 400 阅读 · 0 评论 -
串的匹配算法
一、Brute-Force算法将子串T与主串S,相匹配,如果匹配成功,则返回子串中第一个字符在主串的位置。Brute-Force算法的最简便通俗易懂的算法,也是比较笨重的算法。int B_Findex(SeqString S, int pos, SeqString T){ int i,j; i = pos -1; j =0; while(i < S.length &&a...原创 2019-09-27 19:32:11 · 1244 阅读 · 2 评论