php實現單鏈表與環形鍊錶

2021-07-25 05:07:25 字數 2072 閱讀 8968

class singlelink

//輸出單鏈表

public function showlink($head)

}//增加節點

public function addlink($head, $id, $name)

$current = $current->next;

}$link->next = $current->next; //插入節點

$current->next = $link;

}//刪除節點

public function dellink($head, $id)

$current = $current->next;

}$current->next = $current->next->next;

}//修改節點

public function updatelink($head, $id, $name)

$current = $current->next;

}$current->next->name = $name;

}//根據id查詢name

public function getname($head, $id)

$current = $current->next;

}echo $current->next->name."

"; }

}//初始化單鏈表

$single = new singlelink();

echo "-----------新增節點1-----------

";$single->addlink($single,1,'路飛');

$single->addlink($single,7,'鳴人');

$single->addlink($single,3,'柯南');

$single->addlink($single,6,'孫悟空');

$single->showlink($single);

echo "-----------查詢節點3的名稱-----------

";$single->getname($single,3);

echo "-----------修改節點7-----------

";$single->updatelink($single,7,"漩渦鳴人");

$single->showlink($single);

echo "--------------刪除節點6---------------

1、一群人($sum)圍在一起坐成環狀

2、從某個編號($start)開始報數

3、數到某個數($num)的時候,此人出列,下乙個人重新報數

4、一直迴圈,直到所有人出列,約瑟夫環結束

class circlelink

public function joseph($sum, $num, $start)

else

}$pre = $this->head;

while ($pre->next != $this->head)

if ($start != null)

}while ($pre != $this->head)

echo "出隊的數為:".$this->head->id."

"; $pre->next = $this->head->next;

$this->head = $this->head->next;

}echo "最後留下的數為:".$this->head->id;

任務二 鍊錶學習 環形鍊錶 反轉單鏈表

鍊錶 linked list 是由一組被稱為結點的資料元素組成的資料結構,每個結點都包含結點本身的資訊和指向下乙個結點的位址。由於每個結點都包含了可以鏈結起來的位址資訊,所以用乙個變數就能夠訪問整個結點序列。也就是說,結點包含兩部分資訊 一部分用於儲存資料元素的值,稱為資訊域 另一部分用於儲存下乙個...

鍊錶的實現 單鏈表 雙鏈表

鍊錶知識的引入 對於之前我們接觸到的陣列知識,要想儲存多個物件,首先想到的一定是物件陣列。但是陣列是乙個長度固定的線性結構,一旦內容不足或者過多,都會在成記憶體資源的浪費,由此引入鍊錶充分解決資源浪費問題。class node private屬性需要設定getter setter方法 public ...

Java實現單鏈表 多鍊錶

如果讓你儲存多個物件,你第一時間想到的肯定是陣列,但是如果讓你儲存多個任意物件呢?這時我們會想到用object型的陣列來解決。object data new object 3 但是陣列是乙個長度固定的線性結構,在實際開發中,不論我們的內容不足或過多,都有可能造成空間的浪費,所以我們可以使用乙個鍊錶來...