登录  /  注册
首页 > php教程 > PHP源码 > 正文

储存字符串的PHP单链表

php中文网
发布: 2016-06-10 15:03:03
原创
885人浏览过
跳至 [1] [全屏预览]
<meta charset="utf-8" />
<?
class Node{
    public $data;
    public $next;

    function __construct($data, $next = null){
        $this->data = $data;
        $this->next = $next;
    }    
}

class LinkedList{
    private $head; //单链表的头结点,不存储数据

 function __construct(){//单链表的构造方法
 	//头结点的数据为"傀儡", 不代表 任何数据
    $this->head = new Node("dummy 傀儡"); 
    $this->first = null;
    }

 function isEmpty(){ 
        return ($this->head->next == null);
    }
	
/*	orderInsert($data) 方法, 
 *  按给定字符串 $data 的大小, 将其安插到适当的位置,	
 *  以保证单链表中字符串的存储,始终是有序的。 
 */
 function orderInsert($data){
	$p = new Node($data);	
    if($this->isEmpty()){
        $this->head->next = $p;
    }
    else{
    $q = $this->head;
    while($q->next != NULL && strcmp($data, $q->next->data)> 0 ){
    $q = $q->next;
		}
        $p->next = $q->next; 
		$q->next = $p;
    }     	
 }
 
 function insertLast($data){//将字符串插到单链表的尾部
    $p = new Node($data);
	
    if($this->isEmpty()){
        $this->head->next = $p;
    }
    else{
        $q = $this->head->next;
        while($q->next != NULL)
            $q = $q->next;
        $q->next = $p;  
    }     
}

    function find($value){//查询是否有给定的字符串
        $q = $this->head->next;
        while($q->next != null){
        if(strcmp($q->data,$value)==0){
				break;
			}
            $q = $q->next;    
        }
		if ($q->data == $value)
        return $q; 
		else
		return new Node($value." 没有找到!");
    }

    function traversal(){//遍历单链表
		if(!$this->isEmpty()){
        $p=$this->head->next;
        echo $p->data." ";
        while($p->next != null){
			$p=$p->next;
			echo $p->data." ";
			}			
    	}else
		echo "链表为空!";
	}
} 

$ll = new LinkedList();
$city =array("Wuhan", "Beijing", "Shanghai", "Tianjin", "Changsha", "Kunming", "Gongyi","Tokyo","New York","Ottawa","Moskow","Edmonton","Glasgow","Thunder Bay","New Delhi"); 

for ($i=0;$i<count($city);$i++)
$ll->orderInsert($city[$i]);
$ll->traversal();
echo "<br>".$ll->find("Gongyi")->data."<br>";
echo $ll->find("Baoding")->data."<br>";
?>
登录后复制

2. [图片] output.png    

储存字符串的PHP单链表
智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号