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 · 309 阅读 · 0 评论 -
PHP 返回栈中最小元素的操作
* data-structure/MyStack1.php<?php/** * [题目] * 实现一个特殊的栈, 在实现栈的基本功能的基础上, 再实现返回栈中最小元素的操作 * [要求] * 1. pop, push, getMin操作的时间复杂度都是O(1) * 2. 设计栈类型可以使用现成的栈结构 * * Created by PhpStorm. *...原创 2018-09-19 23:51:17 · 369 阅读 · 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/50457216https://blog.csdn.net/huntinux/article/category/1316516/1<?phpclass Tre...原创 2018-07-24 22:08:00 · 274 阅读 · 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 · 1027 阅读 · 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.jshttps://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 · 1438 阅读 · 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 · 412 阅读 · 0 评论 -
javascript queue 队列类
【代码】javascript queue 队列类。原创 2018-09-09 17:29:04 · 707 阅读 · 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 · 744 阅读 · 0 评论