数据结构面试之一——单链表常见操作
题注:《程序员面试宝典》有相关习题,但思路相对不清晰,排版有错误,本文对此参考相关书籍和自己观点进行了重写,供大家参考。 1.查找链表元素 Step1:置查找标记bfound=false;判断链表是否为空,是,提示“不能查找空链表”;否,进入step2。 Step2:从链表头开始查找,判断(当前点的info是否与待查找元素值相等&&指针未指向末尾),是,“查找结束,bfound=....
数据结构面试之二——双向链表表、循环链表、有序链表的常见操作
二、双向链表 双向链表的建立是在单链表的基础上,多了一个指向前驱的指针back。其他的操作类似,注意点就是在双向链表的操作,尤其插入、删除操作中需要修改两个指针的指向,一个是back指针,一个是next指针。 1.双向链表的构建【前面插入】 构建双向链表注意点:1)修改first指针(头指针)的指向。2)修改back、next指针。 //反向表头插入,从前面插入... template<t....
数据结构面试之三——栈的常见操作
3.1用数组构造栈 【注意以下几点】: 1.基于数组的栈的三要素:1)栈的最大容量maxSize; 2)栈的当前容量=当前栈中元素的个数=栈顶top-1;3)动态数组存储栈的元素 Type* list; 2.对于出栈、入栈的操作要对应先判断栈空、栈满;如果空、满要有异常处理或错误提示。 3.注意入栈push操作,先入栈后top+1;出栈pop则相反,先top-1,再出栈。【注意因为,top指向数....
数据结构面试之四——队列的常见操作
题注:《面试宝典》有相关习题,但思路相对不清晰,排版有错误,作者对此参考相关书籍和自己观点进行了重写,供大家参考。 1.用数组构造队列 队列即是满足先进先出的链表。用数组存储的话,同样需要满足队列头front出栈,队列末尾rear入栈。而对于数组来讲,rear和front可以代表数组头和尾。不能简单的固定rear和front的大小为maxSize和0,因为可能出现中间元素为空的现象。所以,对于数....
数据结构面试之五—二叉树的常见操作(递归实现部分)
题注 《面试宝典》有相关习题,但思路相对不清晰,排版有错误,作者对此参考相关书籍和自己观点进行了重写,供大家参考。 二叉树是笔试、面试的重点,包括选择题的题型之——求解前、中、后序的遍历结果等。去年(2011秋季)的百度笔试试题就考察了二叉树的后序遍历的非递归实现。 笔者先就下面常考几个题目就递归算法的实现分析如下: 递归的核心就是遍历完根节点后,再依次同样的方法递归左孩子、右孩子节点,直到为空....
数据结构面试之六——二叉树的常见操作2(非递归遍历&二叉排序树)
题注 《面试宝典》有相关习题,但思路相对不清晰,排版有错误,作者对此参考相关书籍和自己观点进行了重写,供大家参考。 接上一节第五部分,主要分析二叉树的非递归遍历和二叉排序树的操作。 1. 非递归中序遍历 //1.依次将根节点root的左子树入栈,直到lchild=NULL,执行2 //2.将栈的元素出栈、访问;将当前指针指向节点的rchild,循环遍历。直到栈空为止! &n...
数据结构面试之七——图的常见操作
题注 《面试宝典》有相关习题,但思路相对不清晰,排版有错误,作者对此参考相关书籍和自己观点进行了重写,供大家参考。 图的基本操作,包括:1.创建一个图,2.判断图是否为空,3.图的打印,4.图的遍历...... 其中对于1,创建一个图,需要考虑图的存储结构,存储结构分为:邻接矩阵存储(数组),邻接表存储(数组链表)。而对于四,也是图的核心操作,主要分为:图的深度优先遍历(逐个结点递归),图的广度....
数据结构面试之八——图的常见操作2之最短路径
题注:《面试宝典》有相关习题,但思路相对不清晰,排版有错误,作者对此参考相关书籍和自己观点进行了重写,供大家参考。 (一)最短路径核心思想步骤如下: (1)从选定的源顶点出发,先选择与该源顶点相连的权值最小且尚未标识过的顶点X,并标识X为True、记录该路径长度; (2)然后比较经过该顶点X与其余顶点相连的路径之和是否小于源顶点到其余顶点的直接路径长度,是,则修改路径长度;否,则保持不变; (3....
数据结构面试之九——图的常见操作3之最小生成树
题注《面试宝典》有相关习题,但思路相对不清晰,排版有错误,作者对此参考相关书籍和自己观点进行了重写,供大家参考。 最小生成树——包含带权图中的全部顶点并不能形成环,且权值之和最小的图。 求解最小生成树的方法包括:Prim算法和Kruskal算法。 对于Prim算法思想:1)从源结点集中选定一个源结点(初始源节点集合中只有设定一个结点);2)从剩余结点中选择与源节点集有连接的且权值最小的边。将该源....
数据结构面试之十——排序1(直接插入、希尔、冒泡、直接选择排序)
题注:《面试宝典》有相关习题,但思路相对不清晰,排版有错误,作者对此参考相关书籍和自己观点进行了重写,供大家参考。 数据结构面试之十——排序1(直接插入、希尔、冒泡、直接选择排序) 1.直接插入排序 【算法思想】:每次将一个待排序的元素,插入到前面已经排序的子序列中,直到全部元素插入完毕为止。 【算法实现】: //最简实现排序[交换实现]. template <class T> vo....
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
算法编程
开发者社区在线编程频道官方技术圈。包含算法资源更新,周赛动态,每日一题互动。
+关注