![](https://img-blog.csdnimg.cn/2019083022563773.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构
三猪
一个不知名的码农
展开
-
深度优先搜索(DFS)与广度优先搜索(BFS)简单实现
1.深度优先搜索原理(以二叉树为例)如下二叉树图(出处见水印)通俗讲也就是一根筋冲到底,到底之后在找离自己最近的分叉口再一根筋到底,如此反复.利用栈的原理对之前的节点进行存储,先入后出,即一路到底后便拿出栈中的最后一个数,反复进行.栈的实现利用简单的迭代可便捷实现.2.广度优先搜索原理(以二叉树为例)如下二叉树图再通俗讲也就是一层一层一层搜索,好比人的辈分,也就是先看祖爷爷辈的人,再看爷爷辈的人,...原创 2018-03-26 10:44:29 · 251 阅读 · 0 评论 -
二叉搜索树的实现
二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。实现原理:输入第一个树作为根节点,其后每输入一个数,均从根节点开始,与该节点的数值进行比较.如果大于该节点且...原创 2018-03-26 20:06:22 · 151 阅读 · 0 评论 -
Python 排序二叉树 三种遍历实现
# -*- coding: utf-8 -*-class Binary_tree: #二叉树 value=None left=None right=None def __init__(self,v,*kk): self.value=v print('增加新节点 值为: %d'%(self.value)) def toleft(self,tree): self.left...原创 2019-02-19 02:19:47 · 693 阅读 · 0 评论 -
动态规划-最长上升子序列 (LIS)
举个例子:求 2 7 1 5 6 4 3 8 9 的最长上升子序列.动态规划思想: 大问题转化为多个小问题解决,在求最长上升子序列这个问题上,大问题是第i个数的最长上升子序列,小问题是第0到i-1的最长上升子序列,例如上面的例子: [2] 的最长子序列为 [2][2,7] 的最长子序列为 [2,7] 由于2<7 所以最长子序列等于2的最长子序列+7...原创 2019-02-28 17:37:45 · 288 阅读 · 0 评论 -
动态规划 Dynamic Programming 分析
(参考这位博主的思想:https://blog.csdn.net/u013309870/article/details/75193592)对例题:钢条切割进行解答,并分析三种方法(递归版本 备忘录版本 自底向上动态规划)的效率import timevalue=[0,1,5,8,9,10,14,14,20,24,30,37,45,54,64,75,87,100,114,129]exce...原创 2019-02-26 22:37:24 · 321 阅读 · 0 评论 -
动态规划-过桥问题
参考文章:1.https://www.cnblogs.com/loganlzj/p/10123635.html [后看了这一篇 明确了另一种策略的'拖累'效果] 2.https://blog.csdn.net/u013309870/article/details/75193592 [先参考了这篇 但一开始挺费解]题目:在一个夜黑风高的晚上,有n(n <=...原创 2019-02-27 00:00:19 · 2229 阅读 · 0 评论 -
C语言 链表实现队列操作
#include <stdio.h>#include <stdlib.h>struct Node{ //结构体节点 节点中包含值和下一个节点的内存地址,默认为空 int value; struct Node *next;};struct queue{ //结构体队列 队列中包含头节点和末节点内存地址 struct Node *start; str...原创 2019-03-07 15:36:38 · 473 阅读 · 0 评论