数据结构与算法
文章平均质量分 88
Tavi_
这个作者很懒,什么都没留下…
展开
-
手写函数strlen(), strcpy(), strstr(), strcat(), strcmp(), memcpy(), strchr(), strlwr(), strupr()
手写函数strlen strcpy strstr等函数strlen()函数strcpy()函数strstr()函数strcat()函数strcmp()函数memcpy()函数strchr()函数strlwr()和strupr()strlen()函数功能:计算给定字符串的(unsigned int型)长度,不包括’\0’在内实现:int strlen(const char *str) { assert(str != NULL); int len = 0; while( (*str++) !=原创 2021-03-12 09:26:28 · 879 阅读 · 1 评论 -
map底层为什么用红黑树实现
参考回答:1、红黑树:红黑树是一种二叉查找树,但在每个节点增加一个存储位表示节点的颜色,可以是红或黑(非红即黑)。通过对任何一条从根到叶子的路径上各个节点着色的方式的限制,红黑树确保没有一条路径会比其它路径长出两倍,因此,红黑树是一种弱平衡二叉树,相对于要求严格的AVL树来说,它的旋转次数少,所以对于搜索,插入,删除操作较多的情况下,通常使用红黑树。性质:每个节点非红即黑根节点是黑的;每个叶节点(叶节点即树尾端NULL指针或NULL节点)都是黑的;如果一个节点是红色的,则它的转载 2020-11-19 19:04:29 · 7219 阅读 · 0 评论 -
算法面试常考知识点
1、动态规划介绍2、红黑树3、哈希函数设计?哈希冲突的处理方法?4、常见排序算法?时间复杂度?基本原理?手撕快排?5、最短路算法介绍?如何优化6、10亿行32位无符号整数,找出第7亿大的数是多少?只给300M内存7、扫雷写一个随机埋n个雷的算法(洗牌算法原理)8、链表反转?第m到第n个?每隔k个9、一个n位数,现在可以删除其中任意k位,使得剩下的数最小(前导零忽略)?10、有符号大数链表加法,靠近头结点为高位?11、二叉树中序便利后继结点?12、无向图的联通块?13、手撕并查集?1原创 2021-03-16 21:37:54 · 976 阅读 · 1 评论 -
二叉树遍历(前序、中序、后序、层次、深度优先、广度优先遍历)
二叉树遍历一、前序遍历二、中序遍历三、后序遍历四、层次遍历五、深度与广度优先搜索二叉树是一种非常重要的数据结构,非常多其他数据结构都是基于二叉树的基础演变而来的。对于二叉树,有深度遍历和广度遍历,深度遍历有前序、中序以及后序三种遍历方法,广度遍历即我们寻常所说的层次遍历。由于树的定义本身就是递归定义,因此採用递归的方法去实现树的三种遍历不仅easy理解并且代码非常简洁,而对于广度遍历来说,须要其...转载 2020-04-21 11:02:32 · 765 阅读 · 0 评论