php实现的顺序线性表示例


Posted in PHP onMay 04, 2019

本文实例讲述了php实现的顺序线性表。分享给大家供大家参考,具体如下:

<?php
/*
 * 线性顺序表 ,其是按照顺序在内存进行存储,出起始和结尾以外都是一一连接的(一般都是用一维数组的形式表现)
 *
 * GetElem: 返回线性表中第$index个数据元素
 * ListLength: 返回线性表的长度
 * LocateElem: 返回给定的数据元素在线性表中的位置
 * PriorElem: 返回指定元素的前一个元素
 * NextElem: 返回指定元素的后一个元素
 * ListInsert: 在第index的位置插入元素elem
 * ListDelete: 删除第index位置的元素elem
 */
class Sequence {
  public $seqArr;
  public $length;
  public function __construct($arr) {
    $this->seqArr = $arr;
    $this->length = count($arr);
  }
  /*
   * 返回线性表中第$index个数据元素
   */
  public function GetElem($index) {
    if (($this->length) == 0 || $index < 0 || ($index > $this->length)) {
      return "Error";
    }
    return $this->seqArr[$index - 1];
  }
  /*
   * 返回线性表的长度
   *
   */
  public function ListLength() {
    return $this->length;
  }
  /*
   * 返回给定的数据元素在线性表中的位置
   */
  public function LocateElem($elem) {
    for ($i = 0; $i < ($this->length); $i++) {
      if (($this->seqArr[$i]) == $elem) {
        return $i + 1;
      }
    }
  }
  /*
   * PriorElem: 返回指定元素的前一个元素
   */
  public function PriorElem($elem) {
    for ($i = 0; $i < ($this->length); $i++) {
      if (($this->seqArr[$i]) == $elem) {
        if ($i == 0) {
          return "Error (is null) ";
        } else {
          return $this->seqArr[$i - 1];
        }
      }
    }
  }
  /*
   * NextElem: 返回指定元素的后一个元素
   */
  public function NextElem($elem) {
    for ($i = 0; $i < ($this->length); $i++) {
      if (($this->seqArr[$i]) == $elem) {
        return $this->seqArr[$i + 1];
      }
    }
  }
  /*
   * ListInsert: 在第index的位置插入元素elem
   */
  public function ListInsert($index, $elem) {
    if (($this->length) == 0 || $index < 0 || $index > ($this->length)) {
      return "Error";
    }
    for ($i = $index; $i < ($this->length); $i++) {
      $this->seqArr[$i + 1] = $this->seqArr[$i];
    }
    $this->seqArr[$index] = $elem;
    $this->length = $this->length + 1;
    return $this->seqArr;
  }
  /*
   * ListDelete: 删除第index位置的元素
   */
  public function ListDelete($index) {
    if (($this->length) == 0 || $index < 0 || $index > ($this->length - 1)) {
      return "Error";
    }
    unset($this->seqArr[$index]);
    $this->length--;
    return $this->seqArr;
  }
}
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
一个用php3编写的简单计数器
Oct 09 PHP
php下用GD生成生成缩略图的两个选择和区别
Apr 17 PHP
PHP获取数组中某元素的位置及array_keys函数应用
Jan 29 PHP
PHP连接MySQL的2种方法小结以及防止乱码
Mar 11 PHP
关于php支持分块与断点续传文件下载功能代码
May 09 PHP
PHP字符串word末字符实现大小写互换的方法
Nov 10 PHP
Laravel 5框架学习之表单验证
Apr 08 PHP
PHP统计目录中文件以及目录中目录大小的方法
Jan 09 PHP
PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)
Feb 23 PHP
php单链表实现代码分享
Jul 04 PHP
PHP使用数组实现矩阵数学运算的方法示例
May 29 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
May 25 PHP
TP5.0框架实现无限极回复功能的方法分析
May 04 #PHP
PHP7 mongoDB扩展使用的方法分享
May 02 #PHP
PHP超低内存遍历目录文件和读取超大文件的方法
May 01 #PHP
Yii框架学习笔记之session与cookie简单操作示例
Apr 30 #PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
Apr 30 #PHP
YII框架关联查询操作示例
Apr 29 #PHP
YII框架页面缓存操作示例
Apr 29 #PHP
You might like
如何过滤高亮显示非法字符
2006/10/09 PHP
PHP 数据结构 算法描述 冒泡排序 bubble sort
2011/07/10 PHP
PHP投票系统防刷票判断流程分析
2012/02/04 PHP
基于PHP实现的事件机制实例分析
2015/06/18 PHP
ExtJs之带图片的下拉列表框插件
2010/03/04 Javascript
jQuery UI Datepicker length为空或不是对象错误的解决方法
2010/12/19 Javascript
jQuery powerFloat万能浮动层下拉层插件使用介绍
2010/12/27 Javascript
jQuery使用技巧简单汇总
2013/04/18 Javascript
JavaScript 垃圾回收机制分析
2013/10/10 Javascript
详解Javascript动态操作CSS
2014/12/08 Javascript
javascript实现checkbox复选框实例代码
2016/01/10 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
原生js实现addclass,removeclass,toggleclasss实例
2016/11/24 Javascript
微信小程序之ES6与事项助手的功能实现
2016/11/30 Javascript
原生js实现键盘控制div移动且解决停顿问题
2016/12/05 Javascript
利用JavaScript实现拖拽改变元素大小
2016/12/14 Javascript
简单实现Bootstrap标签页
2020/08/09 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
2017/02/07 Javascript
bootstrap table表格客户端分页实例
2017/08/07 Javascript
10分钟上手vue-cli 3.0 入门介绍
2018/04/04 Javascript
Vue组件的使用及个人理解与介绍
2019/02/09 Javascript
[00:12]2018DOTA2亚洲邀请赛SOLO赛 MidOne是否中单第一人?
2018/04/05 DOTA
[42:20]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
判断python对象是否可调用的三种方式及其区别详解
2019/01/31 Python
python3 打印输出字典中特定的某个key的方法示例
2019/07/06 Python
pywinauto自动化操作记事本
2019/08/26 Python
Python numpy数组转置与轴变换
2019/11/15 Python
详解matplotlib绘图样式(style)初探
2021/02/03 Python
西班牙最大的在线滑板和街头服饰商店:Fillow.net
2019/04/15 全球购物
人事主管岗位职责范本
2013/12/04 职场文书
乡镇三项教育实施方案
2014/03/30 职场文书
党员批评与自我批评发言
2014/10/02 职场文书
2014年酒店工作总结与计划
2014/11/17 职场文书
任命书标准格式
2015/03/02 职场文书
2015年保管员工作总结
2015/04/30 职场文书
python数据可视化JupyterLab实用扩展程序Mito
2021/11/20 Python