• 《数据结构


    一:什么是线性表?

      - 线性表定义: 0个 或 多个 数据元素 有限 序列

        - 序列:这个必须有顺序的,若元素存在多个,则第一个元素无前驱,最后一个元素无后驱。一个元素只能有一个前驱/后驱

        - 有限:线性表必须是有限的,无限的只存在于数学中。

      - 线性表元素个数必须是 大于 0, 当 n = 0 时,称为空表

    二:线性表抽象模型(线性表通用模型)?

    • 线性表创建/初始化 - 对数据排队
    • 不符合规则,重置为空表
    • 根据位序得到数据
    • 线性表存在
    • 线性表长度
    • 移入/删除 
     
    三:什么是 顺序存储结构 ?

      - 线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素

      - 存储器中的每个存储元都有自己的编号,这个编号称为地址.

      - 线性表长度应该小于数组长度

      - 在PHP语言中,也可用一维数据来实现.

    四:顺序存储结构的优点/缺点?

      - 优点

        -  无需为表中之间逻辑关系而增加额外的存储空间

        -  可以快速的存取表中任一元素的位置

      - 缺点

        -  删除/移动需要改变大量的元素

        -  当线性表长度较大,难以确定容量

        -  存储空间的 碎片

    五:实现 顺序结构线性表

    <?php
    
    class ArrayList 
    {
        public $Arr;
        public $Length;
    
        /**
         * 构建线性表
         */
        public function __construct($Arr)
        {
            $this->Arr    = $Arr;
            $this->Length = count($SqArr);
        }
        
        /**
         * 销毁顺序线性表
         */
        public function Destroy()
        {
            $this->Arr    = NULL;
            $this->Length = 0;
        }
    
        /**
         * 将线性表重置为空
         */
        public function Init()
        {
            $this->Arr    = [];
            $this->Length = 0;
        }
        
        /**
         * 判断线性表是否为空
         */
        public function Empty()
        {
            if($this->Length == 0) {
                return TRUE;
            }
    
            return FALSE;
        }
    
        /**
         * 返回线性表的长度
         */
        public function ListLength(){
            return $this->Length;
        }
    
        /**
         * 返回线性表中第$index个数据元素
         */
        public function GetIndex($index)
        {
            if($this->Length == 0 || $index < 1 || $index > $this->Length) {
                return 'ERROR';
            }
            return $this->Arr[$index-1];
        }
    
        /**
         * 在第index的位置插入元素elem
         * 添加之后,其他位置元素也需要随之改变
         */
        public function Insert($index, $elem)
        {
            if($index < 1 || $index > ($this->Length + 1)) {
                return 'ERROR';
            }
    
            if($index <= $this->Length) {
                for ($i = $this->Length - 1; $i >= $index - 1; $i--) {
                    $this->Arr[$i + 1] = $this->Arr[$i];
                }
            }
            $this->Arr[$index - 1] = $elem;
            $this->Length++;
            return 'ok';
        }
    
        /**
         * 删除第index位置的元素elem
         * 删除之后,其他位置元素也需要随之改变
         */
        public function Delete($index){
            if ($index < 1 || $index > $this->Length + 1) {
                return 'ERROR';
            }
            if ($index < $this->Length) {
                for($i = $index; $i < $this->Length; $i++) {
                    $this->Arr[$i - 1] = $this->Arr[$i];
                }
            }
            $this->Length--;
            return $this->Arr[$index - 1];
        }
    }
  • 相关阅读:
    无线鼠标换电池了
    Jython Interactive Servlet Console YOU WILL NEVER KNOW IT EXECLLENT!!! GOOD
    Accessing Jython from Java Without Using jythonc
    jython podcast cool isnt't it?
    Python里pycurl使用记录
    Creating an Interactive JRuby Console for the Eclipse Environment
    微软为AJAX和jQuery类库提供CDN服务
    Download A File Using Cygwin and cURL
    What is JMRI?这个是做什么用的,我真没看懂但看着又很强大
    用curl 发送指定的大cookie的http/https request
  • 原文地址:https://www.cnblogs.com/25-lH/p/10413340.html
Copyright © 2020-2023  润新知