博客专栏  >  编程语言   >  经典算法学习

经典算法学习

我会在专栏中和大家分享最为经典的数据结构和算法原理和实现。以及包括一些经典面试题、编程题的算法实现。希望我们能在交流中实现共同进步,成为算法大神。

关注
50 已关注
80篇博文
  • C语言中的那些库函数(持续更新中)

    1.【exit()】        exit是在调用处强行退出程序,运行一次程序就结束。exit(0)表示正常退出。exit(1)表示异常退出,这个1是返回给操作系统的。无论是写在main函数中,还是...

    2016-02-24 23:31
    3748
  • 经典算法学习——非递归遍历二叉树

    我们知道二叉树是一种递归定义的数据结构,包括二叉树的创建、遍历、求树高、叶子节点个数等等。使用递归来进行以上操作非常的简便,相关实现请参考 《C语言实现二叉树的基本操作》。但是今天我们剑走偏锋,使用非...

    2016-10-03 12:28
    1827
  • 经典算法学习——求二叉树的高度

    二叉树是一种递归定义的数据结构,我们对它做的几乎所有的操作都是递归的。求树的高度也是如此。分别求左右子树的高度,然后取较长的子树作为高度。代码上传至 https://github.com/chenyu...

    2016-10-02 21:10
    3062
  • 经典算法学习——求二叉树叶子节点的个数

    二叉树的叶子节点是既没有左子树又没有右子树的特殊的节点,使用递归我们可以方便的计算出共有多少叶子节点。代码上传至  https://github.com/chenyufeng1991/BinaryTr...

    2016-10-02 18:27
    1766
  • 经典算法学习——求二叉树节点和为sum的路径

    在一棵二叉树中,有多少个叶子节点,就会有多少条从根节点到叶子节点的路径。如果给每一个节点一个data值,那么每一条路径经过的节点data加起来就为sum,现在根据给定的sum,请找出有哪些路径符合这个...

    2016-10-02 12:20
    1660
  • 经典算法学习——求包含某两个字符的最小子串的长度

    碰到这样一道算法题:给定一个字符串,比如: cadacacbedffffreaaawc   ,然后给定两个字符为f,c  ,那么最短子串的长度为5。因为子串有cbedf,freaaawc.  这篇博客...

    2016-10-02 10:19
    1685
  • 经典算法学习——层序遍历二叉树

    我们可以用很多方式去遍历一颗二叉树,比如先序遍历,中序遍历,后序遍历,其实都是通过递归的来实现。今天我们来对二叉树进行层序遍历,层序遍历的时候需要借助另一种数据结构——队列。本篇的示例代码上传至 ht...

    2016-10-01 17:16
    1850
  • 经典算法学习——交换二叉树的左右子树(二叉树的翻转)

    对于二叉树,我们必须熟练掌握它的各种操作,今天我们要来实现二叉树的翻转,也就是交换左右子树。具体思路不难,如果一个节点是叶子节点,则不做操作;如果一个节点只有左孩子或者右孩子,则进行交换,原来的孩子为...

    2016-10-01 11:41
    4872
  • 经典算法学习——求次方函数实现

    在如今很多的笔试面试中,都会出现让你实现某个函数的,并且进行优化,比如降低时间复杂度。而在手写代码中,求次方函数是很高频的考点。示例代码上传至:https://github.com/chenyufen...

    2016-09-30 11:37
    1762
  • C++中字符串和数字相互转化实现

    在刷一些题目的时候,总是会碰到字符串和数字进行转化的问题,今天我们就在C++中来用多种方法实现。示例代码上传至 https://github.com/chenyufeng1991/TransferSt...

    2016-09-28 22:45
    2042
  • C++ STL学习——heap

    heap堆其实是一种比较复杂的数据结构,尤其涉及到建堆和调整堆的时候。好在在STL中已经封装了heap的一些操作,可以让我们比较方便的使用堆。比如判断堆,删除一个元素,插入一个元素,以及堆排序。示例代...

    2016-09-28 20:11
    1561
  • C++ STL学习——algorithm

    在之前的博客中我们学习了很多STL中的模板库,包括deque,queue,stack,list等,他们都是一种数据结构,也就是说STL已经为我们实现了。今天我们来讲讲STL中比较大的一个库.  主要是...

    2016-09-24 11:54
    1621
  • C++ STL学习——deque

    在数据结构中还有一种很常见的队列叫做双端队列,我们在上一篇博客《C++ STL学习——queue》中讲到的队列queue是一种最标准的队列,只能在尾部插入数据,在头部删除数据。而今天我们讲到的dequ...

    2016-09-07 00:05
    1889
  • C++ STL学习——queue

    我们在上一篇博客中《C++ STL学习——stack》简单介绍了STL 中stack这种数据结构的使用,这篇博客主要来讲一下queue队列的使用。其实queue的使用和stack一样简单。示例代码上传...

    2016-08-23 00:08
    1804
  • C++ STL学习——stack

    栈是最为常用的数据结构了,很多算法都是依靠栈来实现的,比如递归。我们要手动来实现栈,显得十分繁琐和麻烦,而且复用性不好。C++ 的STL中已经帮我们封装好了栈,我们只要方便的进行调用即可。该篇博客主要...

    2016-08-22 23:50
    1847
  • C++ STL学习——list

    如果由我们自己来实现一个链表,会写上不少代码,包括要实现创建、删除、插入等等操作。但是如果我们用了STL,那么该模板库就为我们提供了一个双向链表list,可以让我们非常方便的实现链表操作。要使用lis...

    2016-08-22 00:00
    1503
  • C++ STL学习——vector

    学过C++的人肯定会很熟悉STL标准模板库,STL其实就是封装了一系列的接口,供我们调用。很多函数或者算法的实现不需要我们从头开始写,大大提高我们的编程效率。这篇博客在简单介绍STL的情况下,会详细的...

    2016-08-21 21:45
    1802
  • 经典算法学习——打印两个链表的第一个公共节点

    求链表的公共节点是一道很经典的算法题,并不是很难。我们需要知道的是,一旦两个链表有一个公共节点的话,那么这两个链表的形状就是一个“Y”型。也就是说,自公共节点之后的所有节点都是一样的。如下:其实只要看...

    2016-08-21 20:24
    1379
  • 经典算法学习——第一个只出现一次的字符

    这同样是剑指Offer中的很经典的一道面试题。题目描述为:在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出'b'.  一开始大家就会想到最简单的方法就是每访问到一个字符的时候...

    2016-08-21 19:58
    1430
  • 经典算法学习——合并两个有序链表

    类似的,合并两个有序的数组或者链表也是剑指Offer中的经典题型。题目描述如下:输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是按照递增排序的。我这里以合并链表来实现。       在这...

    2016-08-21 16:59
    1580
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部