#データ構造線形テーブル コード
線形テーブルは、同じデータ特性を持つ n 個の要素の有限シーケンスです。これは最も基本的で一般的に使用される線形構造 (線形リスト、スタック、キュー、文字列、配列はすべて線形構造です) であり、他のデータ構造の基礎でもあります。 空ではない線形テーブルまたは線形構造の特性: (1) 「first」と呼ばれるデータ要素は 1 つだけあります; ( 2) 存在するのは 1 つだけです「最後」と呼ばれるデータ要素; (3) 最初のものを除いて、構造内の各データ要素には先行要素が 1 つだけあります; (4) 最後の要素を除き、それぞれ構造内のデータ要素には後続が 1 つだけあります;線形テーブル構造シーケンス表現 (シーケンシャル テーブル)
概念: 使用連続したアドレスを持つストレージ ユニットのグループに、線形テーブルのデータ要素を順番に並べたもので、このような記憶構造の線形テーブルをシーケンシャルテーブルと呼びます。 特徴: 論理的に隣接するデータ要素は、物理的な順序でも隣接します。 線形テーブルの開始位置が決定されている限り、線形テーブル内の任意のデータ要素にランダムにアクセスできるため、線形テーブルの順次記憶構造はランダム アクセス記憶構造です。この言語の配列型にはランダム アクセスの特性もあるため、通常は配列を使用してデータ構造内の順次記憶構造を記述し、動的に割り当てられる 1 次元配列を使用して線形テーブルを表現します。 以下は、PHP を使用してデータ構造線形テーブル (順序テーブル) を実装するコードです:<?php class ArrayList{ private $list; private $size; public function __construct() { $this->list=array(); $this->size=0; } //初始化链表 public function InitList(){ $this->list=array(); $this->size=0; } //删除链表 public function destoryList(){ if (isset($this->list)){ unset($this->list); $this->size=0; } } //清空链表 public function clearList(){ if (isset($this->list)){ unset($this->list); } $this->list=array(); $this->size=0; } //判断链表是否为空 public function emptyList(){ if (isset($this->list)){ if ($this->size==0){ return true; }else{ return false; } } } //链表长度 public function lengthList(){ if (isset($this->list)){ return $this->size; }else{ return false; } } //取元素 public function getElem($i){ if ($i<1||$i>$this->size){ die('failed'); } if (isset($this->list)&&is_array($this->list)){ return $this->list[$i-1]; } } //是否在链表中 public function locateElem($e){ if (isset($this->list)&&is_array($this->list)){ for ($i=0;$i<$this->size;$i++){ if ($this->list[$i]==$e){ return $i+1; } return 0; } } } //前驱 public function priorElem($i){ if ($i<1||$i>$this->size){ die('failed'); } if ($i==1){ die('no prior'); } if (isset($this->list)&&is_array($this->list)){ return $this->list[$i-2]; } } //后继 public function nextElem($i){ if ($i<1||$i>$this->size){ die('failed'); } if ($i==$this->size){ die('no next'); } if (isset($this->list)&&is_array($this->list)){ return $this->list[$i]; } } //插入元素 public function insertList($i,$e){ if ($i<1||$i>$this->size){ die('failed'); } if (isset($this->list)&&is_array($this->list)){ if ($this->size==0){ $this->list[0]=$e; $this->size++; }else{ for($j=$this->size-1;$j>=$i;$j--){ $this->list[$j]=$this->list[$j-1]; } $this->list[$i-1]=$e; $this->size++; } } } //删除元素 public function deleteList($i){ if ($i<1||$i>$this->size){ die('failed'); } if (isset($this->list)&&is_array($this->list)){ if ($i==$this->size){ unset($this->list[$i-1]); }else{ unset($this->list[$i-1]); for ($j=$i;$j<$this->size;$j++){ $this->list[$j-1]=$this->list[$j]; } } $this->size--; } } //遍历 public function printList(){ if (isset($this->list)&&is_array($this->list)){ foreach ($this->list as $value) { echo $value.' '; } } } }
PHP 中国語 Web サイト##を参照してください。 #!
以上がデータ構造線形テーブルコードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。