演算法(一) 用陣列結構實現固定長度的棧和佇列

2021-09-05 10:01:21 字數 1303 閱讀 2567

背景知識:

棧的特點就是先進後出,佇列的特點就是先進先出。棧的乙個重要應用場景就是倒序某乙個東西,例如字串等等。

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...