码迷,mamicode.com
首页 >  
搜索关键字:算法-数据结构    ( 494个结果
Python数据结构之列表、元组及字典
一位大牛Niklaus Wirth曾有一本书,名为《Algorithms+Data Structures=Programs》,翻译过来也就是算法+数据结构=程序。而本文就是介绍一下Python中内建的三种数据结构----列表、元组以及字典。 列表 列表是处理一组有序项目的数据结构,即你可以在...
分类:编程语言   时间:2014-09-13 22:43:06    阅读次数:270
树和二叉树总结及算法实现
【注:相关概念来自经典教材及维基百科】 树 树状图是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。它具有以下的特点: 每个节点(node)有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;除了根节点外,每个子节点可以分为多个不相交的子树; 如图所示: 相关概念: 节点的度:一个节点含有的子树的个数称为该节点的...
分类:其他好文   时间:2014-09-09 13:12:38    阅读次数:445
020给定两个二叉树T1,T2判断T1是否是T2的子树(keep it up)
给定两个二叉树T1,T2判断T1是否是T2的子树 首先在T2中查找T1的根节点,如果找不到, 则T1不是T2的子树,如果能找到,我们可以 遍历T1,检查T1的每个结点是否对应的存在T2 中。 代码: struct TreeNode { int data; TreeNode* leftChild; TreeNode* rightChild; }; bool isExited(co...
分类:其他好文   时间:2014-09-09 12:52:58    阅读次数:171
019写程序在一棵二叉树中找到两个结点的最近共同祖先(keep it up)
写程序在一棵二叉树中找到两个结点的最近共同祖先。 分两种情况来讨论这个题: 第一种情况结点中没有指向父结点的指针 第二种情况接种有指向父节点的指针 我们先看第一种情况,结点中没有指向父结点的指针。 我们可以采用暴力搜索每一个结点,如果这个结点的子树中 有已知的两个结点,那我们就继续沿着左右子树找,如果左子树 能找到,我们就继续沿着左子树找,如果有子树能找到,我们就 沿着右子...
分类:其他好文   时间:2014-09-07 02:13:34    阅读次数:165
前几天遇到一道有趣的题目 一座楼有10层,兔子可以跳跃的层数可以为1,2或者3,那么兔子到达10层有多少种跳法并列出各种情况。
一道有趣的题目 一座楼有10层,兔子可以跳跃的层数可以为1,2或者3,那么兔子到达10层有多少种跳法并列出各种情况。...
分类:其他好文   时间:2014-09-02 15:53:24    阅读次数:204
数据结构与算法--单源最短路径算法之dijkstra
单源最短路径之dijkstra算法最优子问题:dis(s,...,e)是s到e的最短路径,在这条路径上的所有点之间dis(pi,pj)距离是最小的。算法思路:首先初始化,dis[s][i]是s到i的距离,直接相连的就是其距离,不直接相连的就是无穷大下面是算法主要模块:1.选取dis[i]最小的点加入...
分类:其他好文   时间:2014-09-02 00:03:43    阅读次数:197
说明如何用一个数组A[1...n]来实现两个栈,使得两个栈中的元素总数不到n时,两者都不会发生上溢。注意PUSH和POP操作的时间应为O(1)。
校招开始了,发现自己数据结构,Algorithms的知识都还给老师了。喵了个呜的!《算法导论》开啃吧~从第三章数据结构开始吧~10.1-2 :如何用一个数组A[1...n]来实现两个栈,使得两个栈中的元素总数不到n时,两者都不会发生上溢。注意PUSH和POP操作的时间应为O(1)。解:思想是,建一维...
分类:其他好文   时间:2014-09-01 12:28:43    阅读次数:187
(016)给定一个有序数组(递增),写程序构建一棵具有最小高度的二叉树(keep it up)
给定一个有序数组(递增),写程序构建一棵具有最小高度的二叉树。 由于数组是递增有序的,每次都在中间创建结点,类似二分查找的方法来间最小树。 struct TreeNode { int data; TreeNode* leftChild; TreeNode* rightChild; }; void newNode(TreeNode*& vNode, int vData) { vNode...
分类:其他好文   时间:2014-08-30 02:24:58    阅读次数:260
(015)实现一个函数检查一棵树是否平衡(keep it up)
实现一个函数检查一棵树是否平衡。对于这个问题而言, 平衡指的是这棵树任意两个叶子结点到根结点的距离之差不大于1。 这个题我们可以采用暴力搜索,找到叶子节点到根节点的最小值和最大值,然后他们的差如果大于1就不是平衡树,反之 则是平衡树。 int MinDepth = std::numeric_limits::max(); int MaxDepth = std::numeric_limits::...
分类:其他好文   时间:2014-08-29 02:52:57    阅读次数:197
O(logn)的意思
T=K*log2(N)注:2是小2时间T与以2为底的对数成正比。实际上,由于所有的对数都和其他对数成比例(从底数为2转换到底数为10需乘以3.322),我们可以将这个为常数的底数也并入K.由此不必指定底数:T=K*log(N)(知道这个公式吗:loga(b)=logc(b)/logc(a),loga...
分类:其他好文   时间:2014-08-27 09:16:07    阅读次数:218
494条   上一页 1 ... 41 42 43 44 45 ... 50 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!