跳至 [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();?>