【数据结构之步步为赢】
铭毅天下
《一本书讲透 Elasticsearch》作者,Elastic认证专家、Elastic中国官方合作培训讲师、阿里云MVP、Elastic中文社区2018年、2023年杰出贡献者、CSDN2013年、2016年博客征文特等奖得主、博客全网累计阅读1000万+、已带领国内外近200人+通过Elastic认证专家考试。
展开
-
数据结构面试之一——单链表常见操作
数据结构面试之一——单链表常见操作题注:《程序员面试宝典》有相关习题,但思路相对不清晰,排版有错误,本文对此参考相关书籍和自己观点进行了重写,供大家参考。1.查找链表元素Step1:置查找标记bfound=false;判断链表是否为空,是,提示“不能查找空链表”;否,进入step2。Step2:从链表头开始查找,判断(当前点的info是否与待查找元素值相等&&指针未指向末尾),是,原创 2012-08-13 07:06:38 · 5838 阅读 · 2 评论 -
数据结构面试之十三——Hash表(散列表)
数据结构面试之十三——Hash表(散列表)题注:《面试宝典》有相关习题,但思路相对不清晰,排版有错误,作者对此参考相关书籍和自己观点进行了重写,供大家参考。十三、数据结构面试之十三—哈希表1.基本概念若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数(Hash function),按这个思想建立的表为散列表原创 2012-10-25 13:26:27 · 6058 阅读 · 0 评论 -
数据结构面试之十二——排序3(排序算法归类、排序时间、空间复杂度、稳定性总结)
题注:《面试宝典》有相关习题,但思路相对不清晰,排版有错误,作者对此参考相关书籍和自己观点进行了重写,供大家参考。十一、数据结构面试之十二——排序3(排序算法归类、排序时间、空间复杂度、稳定性总结)排序算法归类插入排序类选择排序类交换排序类归并排序类直接插入排序希尔排序直接选择排序原创 2012-09-05 00:05:18 · 5196 阅读 · 0 评论 -
数据结构面试之十——排序1(直接插入、希尔、冒泡、直接选择排序)
题注:《面试宝典》有相关习题,但思路相对不清晰,排版有错误,作者对此参考相关书籍和自己观点进行了重写,供大家参考。九、数据结构面试之十——排序1(直接插入、希尔、冒泡、直接选择排序)1.直接插入排序【算法思想】:每次将一个待排序的元素,插入到前面已经排序的子序列中,直到全部元素插入完毕为止。【算法实现】://最简实现排序[交换实现].template void dir原创 2012-09-04 23:57:50 · 4673 阅读 · 1 评论 -
数据结构面试之十一——排序2(归并、快速、堆排序)
题注:《面试宝典》有相关习题,但思路相对不清晰,排版有错误,作者对此参考相关书籍和自己观点进行了重写,供大家参考。十、数据结构面试之十一——排序2(归并、快速、堆排序)5. 归并排序【算法思想】:采用分治法的算法思想,将原始数组分为A、B两个子数组,然后对A、B两个子数组继续划分为A1L,A1R,B1L,B1R四个子数组,继续划分直到数组中元素个数为1个时,即认为数组有序;然后再合原创 2012-09-05 00:03:04 · 5024 阅读 · 1 评论 -
数据结构面试之八——图的常见操作2之最短路径
数据结构面试之九——图的常见操作2之最短路径题注:《面试宝典》有相关习题,但思路相对不清晰,排版有错误,作者对此参考相关书籍和自己观点进行了重写,供大家参考。八、图的常见操作2之最短路径(一)最短路径核心思想步骤如下:(1)从选定的源顶点出发,先选择与该源顶点相连的权值最小且尚未标识过的顶点X,并标识X为True、记录该路径长度;(2)然后比较经过该顶点X与其余顶点相连的路径之原创 2012-08-24 22:38:19 · 4612 阅读 · 0 评论 -
数据结构面试之九——图的常见操作3之最小生成树
数据结构面试之九——图的常见操作3之最小生成树题注:《面试宝典》有相关习题,但思路相对不清晰,排版有错误,作者对此参考相关书籍和自己观点进行了重写,供大家参考。九、图的常见操作3之最小生成树最小生成树——包含带权图中的全部顶点并不能形成环,且权值之和最小的图。求解最小生成树的方法包括:Prim算法和Kruskal算法。对于Prim算法思想:1)从源结点集中选定一个源结点(初始源原创 2012-08-24 22:44:57 · 4884 阅读 · 1 评论 -
数据结构面试之七——图的常见操作
题注:《面试宝典》有相关习题,但思路相对不清晰,排版有错误,作者对此参考相关书籍和自己观点进行了重写,供大家参考。七、图的常见操作 图的基本操作,包括:1.创建一个图,2.判断图是否为空,3.图的打印,4.图的遍历…..其中对于1,创建一个图,需要考虑图的存储结构,存储结构分为:邻接矩阵存储(数组),邻接表存储(数组链表)。而对于四,也是图的核心操作,主要分为:图的深度优先原创 2012-08-22 22:48:52 · 6944 阅读 · 1 评论 -
数据结构面试之五—二叉树的常见操作(递归实现部分)
数据结构面试之五—二叉树的常见操作(递归实现部分)题注:《面试宝典》有相关习题,但思路相对不清晰,排版有错误,作者对此参考相关书籍和自己观点进行了重写,供大家参考。转载请注明:http://blog.csdn.net/wojiushiwo987/article/category/1210932五、二叉树的基本操作(递归实现) 二叉树是笔试、面试的重点,包括选择题的题型之——求原创 2012-08-15 23:24:55 · 4299 阅读 · 2 评论 -
数据结构面试之六——二叉树的常见操作2(非递归遍历&二叉排序树)
数据结构面试之六——二叉树的常见操作2(非递归遍历&二叉排序树)题注:《面试宝典》有相关习题,但思路相对不清晰,排版有错误,作者对此参考相关书籍和自己观点进行了重写,供大家参考。六、二叉树的基本操作(非递归遍历)&二叉排序树的操作 接上一节第五部分,主要分析二叉树的非递归遍历和二叉排序树的操作。1. 非递归中序遍历//1.依次将根节点root的左子树入栈,原创 2012-08-19 22:52:08 · 6868 阅读 · 0 评论 -
数据结构面试之四——队列的常见操作
数据结构面试之四——队列的常见操作题注:《面试宝典》有相关习题,但思路相对不清晰,排版有错误,作者对此参考相关书籍和自己观点进行了重写,供大家参考。四、队列的基本操作1.用数组构造队列队列即是满足先进先出的链表。用数组存储的话,同样需要满足队列头front出栈,队列末尾rear入栈。而对于数组来讲,rear和front可以代表数组头和尾。不能简单的固定rear和front的大小为m原创 2012-08-15 23:08:16 · 4259 阅读 · 0 评论 -
数据结构面试之三——栈的常见操作
数据结构面试之三——栈的常见操作题注:《面试宝典》有相关习题,但思路相对不清晰,排版有错误,作者对此参考相关书籍和自己观点进行了重写,供大家参考。三、栈的基本操作3.1用数组构造栈【注意以下几点】:1.基于数组的栈的三要素:1)栈的最大容量maxSize; 2)栈的当前容量=当前栈中元素的个数=栈顶top-1;3)动态数组存储栈的元素 Type* list; 2原创 2012-08-15 23:03:32 · 4298 阅读 · 2 评论 -
数据结构面试之二——双向链表表、循环链表、有序链表的常见操作
数据结构面试之二——双向链表表、循环链表、有序链表的常见操作题注:《面试宝典》有相关习题,但思路相对不清晰,排版有错误,作者对此参考相关书籍和自己观点进行了重写,供大家参考。二、双向链表双向链表的建立是在单链表的基础上,多了一个指向前驱的指针back。其他的操作类似,注意点就是在双向链表的操作,尤其插入、删除操作中需要修改两个指针的指向,一个是back指针,一个是next指针。1.原创 2012-08-14 22:14:37 · 5855 阅读 · 0 评论 -
数据结构面试之十四——字符串的模式匹配
数据结构面试之十四——字符串的模式匹配题注:《面试宝典》有相关习题,但思路相对不清晰,排版有错误,作者对此参考相关书籍和自己观点进行了重写,供大家参考。十四、字符串的模式匹配1. 模式匹配定义——子串的定位操作称为串的模式匹配。2. 普通字符串匹配BF算法(Brute Force算法,即蛮力算法)【算法思想】:第(1)步;从主串S的第po原创 2012-10-28 17:56:11 · 4579 阅读 · 6 评论