随笔分类 -  【数据结构与算法】

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