首页 > 代码库 > 大话数据结构之php实现单链表

大话数据结构之php实现单链表

最近想起来两件事1.大话数据结构和大话设计模式


这两本书很有意思,C语言有指针,所以实现起来容易理解,所以突然想到用PHP写一下来熟悉一下数据结构的线性表,不过看的比较慢。一般两三天才看完一部分,毕竟还要工作,老板还安装摄像头看着每天干了啥。。。。。老板事业兴隆,嘻嘻。


线性表的概念不赘述,直接去看大话数据结构,代码也是在参考众多实现方案,比较符合大话数据结构的原本思想,就是基本上还原C语言的实现过程。


直接上代码

  1. 线性表


  2. <?php
    /*
     *文件名:linearList.php 
     * 功能:数据结构线性表的顺序存储实现
     * author:jack
     * @copyright:www.gifttodj.com
     */
    	
    	class linearList{
    		private $length;		//当前长度
    		private $arr;			//当前存储位置
    		const MAXSIZE=100;		//最大长度
    		
    		   /*
             *构造函数,判断空表还是非空表,并且进行实例化,定义一个数组 
             * @param array $arr 输入的数组
             * @param int $n 输入数组的长度
             * @ruturn void;
            */
    		
    		function __construct($arr,$n){
    			if($n>self::MAXSIZE){
    				echo "对不起,数组的长度超过了最大允许值".self::MAXSIZE;
    			}elseif($n<0){
    				echo ‘异常,数组长度不能为负数‘;
    			}elseif($n==0){
    				echo ‘<br/>... 你创建了一张空表,数组长度为0‘;
    				$this->arr=$arr;
    				$this->length=$n;
    			}else{
    				echo ‘<br/>... 你成功创建了一张表<br/>‘;
    				$this->arr=$arr;
    				$this->length=$n;
    			}
    		}
    		
    		  /*
               *按位查找,返回查找到的值
    		   *@param int $n 查找的位置
               * @ruturn string; 
               */
    		function findValue($n){
    			if($n<1||$n>$this->length){
    				echo ‘输入的位置有误,请在1到‘.$this->length.‘范围内选择‘;
    			}
    			return ‘你要找的第‘.$n.‘位的值为‘.$this->arr[$n-1];
    		}
    		
    		/*
               *按值查找,返回查找到的位置
              * @ruturn string;
              * @param int $n 查找的值
              */
    		function findLocation($n){
    			$v=true;
    			foreach($this->arr as $key=>$value){
    				if($value=http://www.mamicode.com/=$n){>
  3. 线性表测试
    require_once(‘linearList.php‘);
    
    $arr=array(10,125,123,1,4);
    $n=5;
    $list = new linearList($arr,$n);
    echo $list->findValue(5).‘<br/>‘;
    
    echo $list->findLocation(4).‘<br/>‘;
    
    echo ‘<pre>‘;
    print_r($list->insertValue(20,300));
    echo ‘</pre>‘;
    echo ‘<pre>‘;
    print_r($list->deleteValue(1));
    echo ‘</pre>‘;
  4. 单链表<?php
    class LNode{
    	public  $data;
    	public  $next;
    	
    	public function __construct($data=http://www.mamicode.com/‘‘){>
  5. 单链表测试require_once(‘LinkList.php‘);
    
    $list = new SingleLinkList();
    $listt = $list->CreateListHead(5);
    $list = $list->ListTraverse();
    var_dump($listt);
  6. 注意:应该没有注意的了,这个还是很有用武之地,只不过理论偏多,不喜欢的就跳过吧。本来也没有多大问题

本文出自 “一站式解决方案” 博客,请务必保留此出处http://10725691.blog.51cto.com/10715691/1947480

大话数据结构之php实现单链表