php實現單鏈表的實例代碼_PHP教程

      編輯Tag賺U幣
      教程Tag:php單鏈表添加

      推薦:比較簡單的百度網盤文件直鏈PHP代碼
      通過正則表達式獲取百度網盤的文件真實地址,來實現直鏈的效果

      復制代碼 代碼如下:www.wf0088.com

      <?php

      //鏈表節點
      class node {
      public $id; //節點id
      public $name; //節點名稱
      public $next; //下一節點

      public function __construct($id, $name) {
      $this->id = $id;
      $this->name = $name;
      $this->next = null;
      }
      }

      //單鏈表
      class singelLinkList {
      private $header; //鏈表頭節點

      //構造方法
      public function __construct($id = null, $name = null) {
      $this->header = new node ( $id, $name, null );
      }

      //獲取鏈表長度
      public function getLinkLength() {
      $i = 0;
      $current = $this->header;
      while ( $current->next != null ) {
      $i ++;
      $current = $current->next;
      }
      return $i;
      }

      //添加節點數據
      public function addLink($node) {
      $current = $this->header;
      while ( $current->next != null ) {
      if ($current->next->id > $node->id) {
      break;
      }
      $current = $current->next;
      }
      $node->next = $current->next;
      $current->next = $node;
      }

      //刪除鏈表節點
      public function delLink($id) {
      $current = $this->header;
      $flag = false;
      while ( $current->next != null ) {
      if ($current->next->id == $id) {
      $flag = true;
      break;
      }
      $current = $current->next;
      }
      if ($flag) {
      $current->next = $current->next->next;
      } else {
      echo "未找到id=" . $id . "的節點!<br>";
      }
      }

      //獲取鏈表
      public function getLinkList() {
      $current = $this->header;
      if ($current->next == null) {
      echo ("鏈表為空!");
      return;
      }
      while ( $current->next != null ) {
      echo 'id:' . $current->next->id . ' name:' . $current->next->name . "<br>";
      if ($current->next->next == null) {
      break;
      }
      $current = $current->next;
      }
      }

      //獲取節點名字
      public function getLinkNameById($id) {
      $current = $this->header;
      if ($current->next == null) {
      echo "鏈表為空!";
      return;
      }
      while ( $current->next != null ) {
      if ($current->id == $id) {
      break;
      }
      $current = $current->next;
      }
      return $current->name;
      }

      //更新節點名稱
      public function updateLink($id, $name) {
      $current = $this->header;
      if ($current->next == null) {
      echo "鏈表為空!";
      return;
      }
      while ( $current->next != null ) {
      if ($current->id == $id) {
      break;
      }
      $current = $current->next;
      }
      return $current->name = $name;
      }
      }

      $lists = new singelLinkList ();
      $lists->addLink ( new node ( 5, 'eeeeee' ) );
      $lists->addLink ( new node ( 1, 'aaaaaa' ) );
      $lists->addLink ( new node ( 6, 'ffffff' ) );
      $lists->addLink ( new node ( 4, 'dddddd' ) );
      $lists->addLink ( new node ( 3, 'cccccc' ) );
      $lists->addLink ( new node ( 2, 'bbbbbb' ) );
      $lists->getLinkList ();
      echo "<br>-----------刪除節點--------------<br>";
      $lists->delLink ( 5 );
      $lists->getLinkList ();

      echo "<br>-----------更新節點名稱--------------<br>";
      $lists->updateLink ( 3, "222222" );
      $lists->getLinkList ();

      echo "<br>-----------獲取節點名稱--------------<br>";
      echo $lists->getLinkNameById ( 5 );

      echo "<br>-----------獲取鏈表長度--------------<br>";
      echo $lists->getLinkLength ();
      ?>

      分享:PHP中圖片等比縮放的實例
      PHP中圖片等比縮放的實例,需要的朋友可以參考一下

      來源:模板無憂//所屬分類:PHP教程/更新時間:2013-04-22
      相關PHP教程