• 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;
        }
    
    }
     
    ?>
    

      

  • 相关阅读:
    年轻人的第一个 Spring Boot 应用,太爽了!
    面试问我 Java 逃逸分析,瞬间被秒杀了。。
    Spring Boot 配置文件 bootstrap vs application 到底有什么区别?
    坑爹的 Java 可变参数,把我整得够惨。。
    6月来了,Java还是第一!
    Eclipse 最常用的 10 组快捷键,个个牛逼!
    Spring Cloud Eureka 自我保护机制实战分析
    今天是 Java 诞生日,Java 24 岁了!
    厉害了,Dubbo 正式毕业!
    Spring Boot 2.1.5 正式发布,1.5.x 即将结束使命!
  • 原文地址:https://www.cnblogs.com/objectboy/p/5018654.html
Copyright © 2020-2023  润新知