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 相关文章推荐
PHP和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
Jul 03 PHP
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
Oct 31 PHP
PHP实现的封装验证码类详解
Jun 18 PHP
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
Jun 29 PHP
php实现邮件发送并带有附件
Jan 24 PHP
可以保证单词完整性的PHP英文字符串截取代码分享
Jul 15 PHP
ThinkPHP模板替换与系统常量及应用实例教程
Aug 22 PHP
thinkphp缓存技术详解
Dec 09 PHP
PHP中使用imagick生成PSD文件缩略图教程
Jan 26 PHP
php按单词截取字符串的方法
Apr 07 PHP
Nginx环境下PHP flush失效的解决方法
Oct 19 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
Nov 09 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
十大感人催泪爱情动漫 第一名至今不忍在看第二遍
2020/03/04 日漫
ThinkPHP使用心得分享-分页类Page的用法
2014/05/15 PHP
PHP与jquery实时显示网站在线人数实例详解
2016/12/02 PHP
一次因composer错误使用引发的问题与解决
2019/03/06 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
2019/05/09 PHP
Swoole扩展的6种模式深入详解
2021/03/04 PHP
jQuery中的bind绑定事件与文本框改变事件的临时解决方法
2010/08/13 Javascript
JS加jquery简单实现标签元素的显示或隐藏
2013/09/23 Javascript
JavaScript中的常见问题解决方法(乱码,IE缓存,代理)
2013/11/28 Javascript
JS弹出层的显示与隐藏示例代码
2013/12/27 Javascript
js实现飞入星星特效代码
2014/10/17 Javascript
Javascript前端UI框架Kit使用指南之kitjs事件管理
2014/11/28 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
2015/01/28 Javascript
JavaScript从数组中删除指定值元素的方法
2015/03/18 Javascript
JavaScript实现移动端滑动选择日期功能
2016/06/21 Javascript
AngularJS使用ng-app自动加载bootstrap框架问题分析
2017/01/04 Javascript
underscore之function_动力节点Java学院整理
2017/07/11 Javascript
工作中常用到的ES6语法
2018/09/04 Javascript
详解webpack引入第三方库的方式以及注意事项
2019/01/15 Javascript
Vuex模块化应用实践示例
2020/02/03 Javascript
解决Antd 里面的select 选择框联动触发的问题
2020/10/24 Javascript
Python排序搜索基本算法之堆排序实例详解
2017/12/08 Python
对python借助百度云API对评论进行观点抽取的方法详解
2019/02/21 Python
Python给图像添加噪声具体操作
2019/03/03 Python
Python 模拟生成动态产生验证码图片的方法
2020/02/01 Python
某公司.Net方向面试题
2014/04/24 面试题
高中生自我评价个人范文
2013/11/09 职场文书
中餐厅主管的职责范文
2014/02/04 职场文书
益达广告词
2014/03/14 职场文书
演讲稿的写法
2014/05/19 职场文书
花坛标语大全
2014/06/30 职场文书
关于读书的活动方案
2014/08/14 职场文书
民政局副局长民主生活会个人对照检查材料
2014/09/19 职场文书
入党介绍人意见范文
2015/06/01 职场文书
Redis基于Bitmap实现用户签到功能
2021/06/20 Redis
Java基础之详解HashSet的使用方法
2021/06/30 Java/Android