![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
baimayou
百度氛围组菜鸡
展开
-
PHP 实现单链表的复制
<?php/* * 链表的复制 * 输出了复制后的链表 * */class RandomListNode{ var $label; var $next = NULL; function __construct($x){ $this->label = $x; }}function MyClone($pHead){ ...原创 2019-08-19 20:53:32 · 114 阅读 · 0 评论 -
PHP 实现二叉树的深度优先遍历
<?php/* * 完成二叉树的深度优先遍历 * 就是二叉树从根节点到叶子节点,是二叉树的先跟(先序)遍历 * 递归与非递归解法 * *///二叉树的结构class TreeNode{ var $val; var $left = NULL; var $right = NULL; function __construct($val){ ...原创 2019-08-19 18:25:19 · 141 阅读 · 0 评论 -
PHP实现 单链表
<?php/** * Created by PhpStorm. * User: BaiMayou * Date: 2019/2/23 * Time: 14:22 *//** php,java这种面向对象行的语言,需要通过类的方式来定义链表,c,c++则可以直接定义一个链表* 所以对链表的定义直接影响到对链表的操作,这里采用的是最接近c的链表定义的一种,同时也是大部分面试的...原创 2019-04-23 13:31:49 · 516 阅读 · 0 评论 -
PHP实现 选择排序
<?php/** * Created by PhpStorm. * User: baimayou * Date: 19-4-6 * Time: 下午4:19 * 选择排序: 分排序区间和未排序区间;取未排序区间的最小元素与未排序区间第一个元素交换位置,(放到已排序区间末尾) * 解法: 两层循环:第一层循环确定无序区间开始的位置,并将无序区间第一个元素设置为最小元素,第二层,...原创 2019-04-23 13:32:22 · 137 阅读 · 0 评论 -
PHP实现 快速排序
<?php/** * Created by PhpStorm. * User: baimayou * Date: 19-3-23 * Time: 下午9:44 * 快速排序 * 思想:如果要排序数组中下标从 p 到 r 之间的一组数据,我们选择 p 到 r 之间的任意一个数据作为 pivot(分区点)。 * 我们遍历 p 到 r 之间的数据,将小于 pivot 的...原创 2019-04-23 13:32:43 · 141 阅读 · 0 评论 -
PHP实现 堆
<?php/** * Created by PhpStorm. * User: baimayou * Date: 19-3-24 * Time: 下午6:29 * 堆: * 堆是一个完全二叉树; * 堆中每一个节点的值都必须大于等于(或小于等于)其子树中每个节点的值。 * 堆是由数组组成,且从1开始 *///建立堆,向堆中插入元素(从下向上堆化)function ...原创 2019-04-23 13:33:21 · 731 阅读 · 0 评论 -
PHP实现 二叉树
<?php/** * Created by PhpStorm. * User: baimayou * Date: 19-3-20 * Time: 下午3:39 * 二叉树 * 首先根据二叉树的结构建立二叉树,定义左右子树和节点的值 * 二叉树的遍历主要利用递归的思想,按照顺序输出节点的值 * 二叉树的查找可以根据遍历的方式进行查找 *///定义二叉树的节点class...原创 2019-04-23 13:35:14 · 3349 阅读 · 0 评论 -
PHP实现 二叉查找树
<?php/** * Created by PhpStorm. * User: baimayou * Date: 19-3-20 * Time: 下午6.00 * 二叉查找树 * 二叉查找树要求,在树中的任意一个节点,其左子树中的每个节点的值,都要小于这个节点的值,而右子树节点的值都大于这个节点的值 *///定义二叉树的节点class Node{ public ...原创 2019-04-23 13:33:38 · 291 阅读 · 0 评论 -
红黑树
<?php/** * Created by PhpStorm. * User: baimayou * Date: 19-3-20 * Time: 下午9.30 * * 平衡二叉树:二叉树中任意一个节点的左右子树的高度相差不能大于 1 * AVL树:是一种自平衡的是一种高度平衡的二叉搜索树,增加和删除可能需要通过一次或多次树旋转来重新平衡这个树 * 平衡二叉查找树中“平衡”...原创 2019-04-23 13:33:51 · 112 阅读 · 0 评论 -
PHP实现 插入排序
<?php/** * Created by PhpStorm. * User: baimayou * Date: 19-4-6 * Time: 下午3:16 * 插入排序:从前向后,分为有序区间和无序区间,从无序区间取元素在有序区间找到合适的位置并插入,保持有序区间的数据一直有序 * 解法:两层循环,第一层遍历数组,把待插入元素设置为value,第二层遍历已排序区间,讲待插入...原创 2019-04-23 13:34:06 · 188 阅读 · 0 评论 -
PHP实现 冒泡排序
<?php/** * Created by PhpStorm. * User: baimayou * Date: 19-4-6 * Time: 下午2:45 * 冒泡排序 * 原理:每次冒泡排序都会对相邻两个元素进行比较,每趟冒泡排序都会选出最大的数据到末尾 * 解法:因为是两两交换,所以不需要设置最大值,每次八比较的相邻元素中的最大值放在靠后的位置即可; * ...原创 2019-04-23 13:34:23 · 139 阅读 · 0 评论 -
PHP实现 归并排序
<?php/** * Created by PhpStorm. * User: baimayou * Date: 19-3-23 * Time: 下午9:44 * 归并排序 * 思想:先把数组从中间分成前后两部分,然后对前后两部分分别排序,再将排好序的两部分合并在一起,这样整个数组就都有序了 * 解法:整体分为拆分和合并。拆分使用递归,设置高低指针 $low = 0,...原创 2019-04-23 13:33:07 · 237 阅读 · 0 评论 -
PHP实现字符串的排列组合(递归回溯)
PHP实现字符串的排列组合(递归回溯)题目输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。解题思路:回溯的思想:对于排序后的结果位数是一定的,我们先确定第一位,让字符串的第一...原创 2019-08-17 15:45:49 · 1184 阅读 · 0 评论