relaxedws/lca 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

relaxedws/lca

最新稳定版本:1.0.0

Composer 安装命令:

composer require relaxedws/lca

包简介

Library used to find lowest common ancestor in graphs.

README 文档

README

A PHP Library to find Lowest Common ancestor from a Directed Acyclic Graph.

Insight

This library is built to find the Lowest Common ancestor from a Directed Acyclic graph. It first creates a graph and then stores the parents of a node(let's call it node1) in an array(call it array1). To find the parents of node1, we use Breadth First Search traversal in reverse order, i.e, From node1 to root. Same is done with node2. Then we find the LCA by the intersection of elements from array1 and array2. The first node returned by the intersection is the LCA of the 2 nodes.

Dependencies

This library uses clue/graph for creation of the graph and graphp/algorithms for Breadth First Traversal.

Install

The library can be installed via composer.

{
  "name": "myorg/mylib",
  "description": "A library depending on relaxed/lca",
  "require": {
    "relaxedws/lca": "dev-master"
  }
}

Example

After installation, we can perform a merge the following way:

<?php

require __DIR__ ."/vendor/autoload.php";

use Fhaculty\Graph\Graph;
use Relaxed\LCA\LowestCommonAncestor;

$graph = new Graph();

for ($i=1; $i<=6 ; $i++){
   $vertices['node_'.$i] = $graph->createVertex('node_'.$i);
}

$vertices['node_1']->createEdgeTo($vertices['node_2']);
$vertices['node_1']->createEdgeTo($vertices['node_5']);
$vertices['node_2']->createEdgeTo($vertices['node_3']);
$vertices['node_2']->createEdgeTo($vertices['node_4']);
$vertices['node_5']->createEdgeTo($vertices['node_6']);


$instance = new LowestCommonAncestor($graph);

$lca = $instance->find($vertices['node_3'], $vertices['node_4']);
$base = $lca->getId();

Contributing

We welcome anyone to use, test, or contribute back to this project. We have extensive test coverage, but as we all know there's always bugs in software. Please file issues or pull requests with your comments or suggestions.

统计信息

  • 总下载量: 758.08k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 5
  • 点击次数: 3
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 5
  • Watchers: 2
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-3.0
  • 更新时间: 2016-08-03

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固