背景知識:
棧的特點就是先進後出,佇列的特點就是先進先出。棧的乙個重要應用場景就是倒序某乙個東西,例如字串等等。
1.使用陣列結構實現固定長度的棧:思路比較簡單,可以在內部維護乙個索引值,通過這個索引值與長度的關係來保證棧結構的長度固定。
<?php
//棧類
class stack
//壓入棧的操作
public function push($value)
$this->array[$this->index++]=$value;
}//彈出棧的操作
public function pop()
return $this->array[--$this->index];
}//獲取棧頂元素
public function poll()
$index=$this->index-1;
return $this->array[$index];
}public function isempty()
}
2.使用陣列結構實現固定長度的佇列:思路:準備兩個索引start和end,當入隊時end移動,當出隊時start移動,再準備乙個size變數用來儲存佇列的當前長度。(注意:end和start的值是不斷從0--length-1變化的)
<?php
class queue
//入隊
public function push($value)
$this->size++;
$this->array[$this->end]=$value;
//如果end大於等於最大索引值之後重新置為0
$this->end=$this->end>=$this->length-1?0:$this->end+1;
}//出隊
public function pop()
$this->size--;
$result=$this->array[$this->start];
//如果start大於等於最大索引值之後重新置為0
$this->start=$this->start>=$this->length-1?0:$this->start+1;
return $result;
}}$queue=new queue(10);
$queue->push(12);
$queue->push(14);
var_dump($queue->pop());
var_dump($queue->pop());
用陣列結構實現大小固定的棧
棧結構是 後進先出 有初始化棧 入棧 出棧 返回棧頂等功能 1.初始化棧 給定乙個初始大小,建立乙個棧。2.定義乙個變數 index,初始化為 0,用來記錄棧中的元素數量。3.入棧 如果 index小於棧的大小,將要入棧的數放入陣列的 index位置上,index加 1。否則報錯。4.出棧 如果 i...
基於GO語言實現的固定長度邀請碼
1.選取數字加英文本母組成32個字元的字串,用於表示32進製數。2.用乙個特定的字元比如 g 作為分隔符,解析的時候字元 g 後面的字元不參與運算。3.len表示邀請碼長度,預設為6。如下 package invitecode import strings const base e8s2dzx9wy...
用陣列結構實現大小固定的佇列和棧
題目 用陣列結構實現大小固定的佇列和棧 分析 如果強行限制給出乙個長度為n的陣列,設計乙個大小為n的棧,如果超過這個大小,可以報錯。棧 先進後出 佇列 先進先出 public class array to stack queue arr new integer initsize size 0 pub...