data-structure
文章平均质量分 55
fareast_mzh
善假于物
展开
-
php 单向链表反转 LinkedList reverse (没有空的头结点)
* 参照php标准库设计接口 http://php.net/manual/en/class.spldoublylinkedlist.php * 反转单向链表 reverse方法, 其他的方法为了方便测试 <?php /** * Created by PhpStorm. * User: Mch * Date: 8/11/18 * Time: 00:25 */ class N...原创 2018-08-11 16:49:13 · 508 阅读 · 0 评论 -
猫狗队列 PHP 注册自动加载 autoload.php
* 目录结构 * 基类 Pet.php <?php /** * Created by PhpStorm. * User: Mch * Date: 9/24/18 * Time: 3:30 PM */ namespace stack\dogcat; class Pet { /*** @var string */ private $type; pub...原创 2018-09-24 22:04:18 · 308 阅读 · 0 评论 -
PHP 返回栈中最小元素的操作
* data-structure/MyStack1.php <?php /** * [题目] * 实现一个特殊的栈, 在实现栈的基本功能的基础上, 再实现返回栈中最小元素的操作 * [要求] * 1. pop, push, getMin操作的时间复杂度都是O(1) * 2. 设计栈类型可以使用现成的栈结构 * * Created by PhpStorm. *...原创 2018-09-19 23:51:17 · 368 阅读 · 0 评论 -
Top K problem 堆实现 找到无序数组中最小(最大)的k个数
相关文章:https://blog.csdn.net/fareast_mzh/article/details/83688240 问题描述:有N(N>>10000)个整数,求出其中的前K个最大的数。(称作Top k或者Top 10) 问题分析:由于 (1)输入的大量数据; (2)只要前K个 对整个输入数据的保存和排序是相当的不可取的. 可以利用数据结构的最小堆来处理该问题, ...原创 2018-09-28 00:01:50 · 1138 阅读 · 0 评论 -
PHP 一个树为另一棵树的子结构 [TO BE CONTINUED] 二叉树 BinaryTree
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) TODO: 遍历方式改为: https://blog.csdn.net/huntinux/article/details/50457216 https://blog.csdn.net/huntinux/article/category/1316516/1 <?php class Tre...原创 2018-07-24 22:08:00 · 272 阅读 · 0 评论 -
二叉堆 binary heap (1)
* autoload.php 接上次的blog => https://blog.csdn.net/fareast_mzh/article/details/82832668 <?php $prefixList = ['stack\\dogcat', 'stack', 'Heap']; array_walk($prefixList, function($prefix) {...原创 2018-10-06 00:24:26 · 285 阅读 · 0 评论 -
javascript 单向链表反转 reverse 部分反转
leetcode: https://leetcode.com/problems/reverse-linked-list/ /** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } */ /** * @p...原创 2018-10-25 14:36:44 · 784 阅读 · 0 评论 -
Java 用PriorityQueue 实现Huffman Code
https://www.geeksforgeeks.org/huffman-coding-greedy-algo-3/ character Frequency a 5 b 9 c 12 d 13 e 16 f 45 ...原创 2018-10-27 14:48:32 · 439 阅读 · 0 评论 -
二叉堆 binary heap (2) 利用小根堆求最大 top k 优先队列 PriorityQueue
相关文章:https://blog.csdn.net/fareast_mzh/article/details/82875342 使操作被快速执行的性质是堆序(heap order)性. 由于我们想要快速地找出最小元,因此最小元应该在根上. 类似的,可以声明一个max堆,找到和删除最大元 在一个堆中,对于每一个节点X,X的parent中的关键字<=X中的关键字, 根节点除外(...原创 2018-11-03 16:26:09 · 579 阅读 · 0 评论 -
[LEETCODE] #2 linked list add two numbers
https://leetcode.com/problems/add-two-numbers/ You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain ...原创 2018-11-28 20:00:13 · 266 阅读 · 0 评论 -
Trie 字典树(前缀树)
所有的php文件放到同一个目录下 ../Trie/ ├── CharMap.php ├── Map.php ├── StdMap.php ├── Trie.php ├── TrieNode.php ├── index.php ├── test.php~ └── words.txt * TrieNode.php <?php /** * Class TrieNode ...原创 2019-02-23 21:49:36 · 311 阅读 · 0 评论 -
使用递归函数实现栈的逆序, 不使用其他数据结构 stack reverse
* Stack.php <?php /** * Created by PhpStorm. * User: Mch * Date: 9/24/18 * Time: 9:30 AM */ namespace ds\stack; class Stack extends \SplStack { /** * 使用递归函数实现栈的逆序, 不使用其他数据结构 ...原创 2018-09-24 09:41:29 · 476 阅读 · 0 评论 -
由2个栈组成的队列
* DoubleStacksQueue.php <?php /** * 由2个栈组成的队列 * 1. 如果stackPush要往stackPop中压入数据, 那么必须一次性把stackPush中的数据全部压入 * 2. 如果stackPush不为空, stackPush绝对不能向stackPop中压入数据 */ namespace ds\stack; class DoubleS...原创 2018-09-24 09:27:06 · 311 阅读 · 0 评论 -
javascript 图的遍历 BFS DFS
*javascript Dictionary 类 通过HashTable 分离链接法 https://blog.csdn.net/fareast_mzh/article/details/82432507 *javascript queue 队列类 https://blog.csdn.net/fareast_mzh/article/details/82560296 *图的遍历 深度...原创 2018-09-09 17:33:56 · 1025 阅读 · 1 评论 -
javascript BinarySearchTree 查找树 - 二叉查找树
* BinarySearchTree /** * Created by PhpStorm. * User: Mch * Date: 8/16/18 * Time: 23:26 */ function Node(key) { this.key = key; this.left = null; this.right = null; } function Bina...原创 2018-08-16 17:56:16 · 330 阅读 · 0 评论 -
二叉树的层次遍历 PHP BinarySearchTree 二叉查找树, tree 按层级遍历、不用递归遍历, Search Tree, SearchTree tree
* 定义 对于树中的每个节点x,它的左子树中所有关键字值小于x的关键字值,而他的右子树种所有关键字值大于x的关键字值 * SearchTree.php <?php /** * Created by PhpStorm. * User: Mch * Date: 8/15/18 * Time: 23:33 */ class Node { public $element;...原创 2018-08-16 23:19:30 · 376 阅读 · 0 评论 -
javascript BinarySearchTree 查找树 - 二叉查找树 (通用版)
* 比较大小的类 ./utils/Comparator.js https://blog.csdn.net/fareast_mzh/article/details/81810822 * BinarySearchTree.js 基本版: https://blog.csdn.net/fareast_mzh/article/details/81746269 元素只能是Number类型 /**...原创 2018-08-20 00:11:26 · 527 阅读 · 0 评论 -
javascript HashTable 散列表 (分离链接法) HashMap
* Collection/LinkedList.js /** * Created by Mch on 8/26/18. */ function Node(e) { this.element = e; this.next = null; } function LinkedList() { this.length = 0; this.head = null; ...原创 2018-08-26 22:58:11 · 496 阅读 · 0 评论 -
javascript HashMap 线性探索 解决冲突
* HashMap.js /** * Created by Mch on 8/27/18. */ function KeyValuePair(key, value) { this.key = key; this.value = value; } KeyValuePair.prototype.toString = function() { return '['+ t...原创 2018-08-27 23:26:04 · 495 阅读 · 0 评论 -
javascript Set类 集合 交集+并集+差集+子集
* Set.js /** * Created by Mch on 8/20/18. */ function Set() { this.items = {} } Set.prototype = { has: function(value) { return this.items.hasOwnProperty(value); }, add: f...原创 2018-08-20 23:05:23 · 612 阅读 · 0 评论 -
javascript Dictionary类 字典
* Dictionary.js /** * Created by Mch on 8/20/18. */ // var Set = require("./Set.js").Set; function Dictionary() { // Set.call(); this.items = {} } // Dictionary.prototype = new Set(); Dic...原创 2018-08-20 23:20:19 · 1435 阅读 · 0 评论 -
Javascript 创建图类 使用邻接表
* 邻接表数据结构 * 创建字典Dictionary或HashMap数据结构 存储邻接表 Collection/Dictionary.js /** * Created by Mch on 8/20/18. */ function Dictionary() { this.map = []; } function KeyValuePair(key, value) { ...原创 2018-09-02 18:11:44 · 1026 阅读 · 0 评论 -
javascript Dictionary 类 通过HashTable 分离链接法
* ./utils/Comparator.js /** * Created by Mch on 8/18/18. */ function Comparator(comparefunction) { this.compare = comparefunction || Comparator.defaultCompareFunction; } Comparator.defaultCom...原创 2018-09-05 23:22:16 · 411 阅读 · 0 评论 -
javascript queue 队列类
【代码】javascript queue 队列类。原创 2018-09-09 17:29:04 · 706 阅读 · 2 评论 -
javascript LinkedList js 双向循环链表 Circular Linked List
javascript LinkedList: function Node(elem, prev, next) { this.elem = elem; this.prev = prev ? prev : null; this.next = next ? prev : null; } function LinkedList() { this.length =...原创 2018-07-16 13:03:00 · 743 阅读 · 0 评论