可以用作棧和佇列的模型

2021-08-03 18:04:26 字數 1277 閱讀 1461

整數可以用作簡單的棧來使用,整數0,入棧加1,出棧減1。這種方式只能用作使用棧進行簡單判斷的地方,不適用於使用棧來存放資料。

比如判斷括號是否匹配正確,(()()),這樣的就是正確的,())( )),這樣的就是不正確的,且只能判斷一種括號的。

因為只是為了判斷括號是否正確,所以用棧來做,但同時由於沒有資料需要存放,使用真正的棧就會浪費空間。所以使用整數來充當乙個棧。這個棧只要入棧、出棧和棧內元素的個數的功能,不具備取得棧內元素的功能。

class

myutil:

""" the class has ony a method, which is used to decide whether

a string has correct brackets or not.

類有乙個方法,用於判斷字串中括號匹配是否正確。

"""defbracket

(self, s):

""" :type s: str

:rtype: bool

"""stack = 0

for i in range(len(s)):

if s[i] == '(' :

stack += 1

elif s[i] == ')':

stack -= 1

if stack < 0:

return

false

if stack != 0:

return

false

else:

return

true

# 最後只有正確的stack才是0,格式錯誤的都不為0

""" the method is used for test

測試方法

"""deftest

(self):

print(self.bracket('()()')) # true

print(self.bracket(')()(')) # false

print(self.bracket('(((')) # false

print(self.bracket(')))')) # false

print(self.bracket('())(')) # false

print(self.bracket('')) # true

print(self.bracket('()()())()')) # false

類似的還有使用兩個整數當做簡單佇列使用,第乙個整數用於指示隊頭,第二個整數用於指示隊尾。

C count函式的用法(可以用作統計個數)

algorithm標頭檔案定義了乙個count的函式,其功能類似於find。這個函式使用一對迭代器和乙個值做引數,返回這個值出現次數的統計結果。編寫程式讀取一系列int型資料,並將它們儲存到vector物件中,然後統計某個指定的值出現了多少次 中向量的那種方式 include include inc...

supervisor可以用的配置es和kibana

program elasticsearch directory usr local elasticsearch bin 程式的啟動目錄 command su elk c usr local elasticsearch bin elasticsearch 啟動命令,可以看出與手動在命令列啟動的命令是一...

棧和佇列的實驗

建立乙個標頭檔案seqstack.h該檔案包括順序棧類seqstack的定義 ifndef seqstack h define seqstack h const int stacksize 10 棧最多有10個元素 template 定義模板類seqstack class seqstack 析構函式...