随笔分类 - 【数据结构与算法】
STL、数据结构、算法一些学习心得
摘要:这里说的哨兵,是指对异常场景处理的一种优化。现对两种数组结构运用场景举例: 1.数组: 对一个无重复数据的数组中查找已知值的位置。 void Findbykey(char *a, int n, int key){ int i = 0; for(;a[i] != key; i++){ if(i = n
阅读全文
摘要:1.单向链表 链表通过指针将一组零散的内存块串联起来,其中,内存块称为链表的结点。结点包含存储数据以及下一个结点的地址(后继指针next)。头结点用来记录链表的基地址,尾节点是最后一个结点(指针不是指向下一个结点,而是指向一个空地址NULL)。 2.循环链表 循环链表是一种特殊的单链表,其尾节点的指
阅读全文
摘要:1.数组从0开始编号:数组下标的意思是取地址偏移,第一个数组元素下标的意思其实就是首地址偏移为0。 2.数组的删除、增加都有技巧。增加可以用快排,将增加的数据直接替换,并将原始数据移到末尾。删除:可以对删除的地址进行记录,而不真正删除,在内存不够的情况下再整体进行删除。 3.数组支持随机访问,根据下
阅读全文
摘要:散列表的必要条件: 散列函数计算得到的散列值是一个非负整数 如果 key1 = key2,那 hash(key1) == hash(key2) 如果 key1 ≠ key2,那 hash(key1) ≠ hash(key2) 第一点:因为数组的下标是从0开始,所以哈希函数生成的哈希值也应该是非负数
阅读全文

浙公网安备 33010602011771号