• 技术文章 >php教程 >PHP源码

    单链表英语单词统计(列出所有单词及其出现次数)

    2016-06-16 08:39:32原创1057
    跳至 [1] [全屏预览]
      
    data = $data; //英文字符串
            $this->next = $next; //指向后继结点的指针
    		$this->frequency=$frequency; //英文字符串出现的次数
        }    
    }
    
    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 {
    	$node= $this->find($data);
    	if(!$node){
        $q = $this->head;
        while($q->next != NULL && strcmp($data, $q->next->data)> 0 ){
        $q = $q->next;
    		}
            $p->next = $q->next; 
    		$q->next = $p;
        }else
    	$node->frequency++;
    	}
     }
    
     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 null;
        }
    
     function traversal(){//遍历单链表
    		if(!$this->isEmpty()){
            $p=$this->head->next;
            echo $p->data."(".$p->frequency.") ";
            while($p->next != null){
    			$p=$p->next;
    			echo $p->data."(".$p->frequency.") ";
    			}			
        	}else
    		echo "链表为空!";
    	}
    } 
    
    $ll = new LinkedList();
    $city =array("Wuhan", "Beijing", "Shanghai","Thunder Bay",
     "Tianjin", "Changsha", "Kunming", "Edmonton", "Glasgow",
     "Gongyi","Tokyo","New York","Ottawa","Moskow","Edmonton",
     "Glasgow","Edinburgh","Thunder Bay","New Delhi","Edinburgh",
      "Edmonton", "Glasgow", "Edmonton","Glasgow"); 
    for ($i=0;$iorderInsert($city[$i]);
    $ll->traversal();
    ?>
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:单链表英语单词统计(列出所有单词及其出现次数)
    上一篇:uploadify+PHPExcel无刷新导入数据-完善中3 下一篇:用于上传图片的文字和图片水印的添加
    千万级数据并发解决方案

    相关文章推荐

    • PHP使用mail函数发送邮件标题乱码问题解决方法 • Session Manager by Redis• Yaf框架入门只hello yaf• 收藏PHP常用自定义函数• PHP不用第三个变量交换两个变量的值的方法总结
    1/1

    PHP中文网