棧涉及的問題

2021-09-12 23:05:03 字數 1488 閱讀 9455

question:記憶體中的堆疊和資料結構的堆疊

answer

1.記憶體中的堆疊是真實存在的物理區,資料結構中的堆疊是抽象的資料儲存結構;

記憶體空間邏輯上分為:**區、靜態資料區、動態資料區(棧區+堆區);

**區儲存二進位制**。作業排程,記憶體排程,程序排程,控制**區執行**切換;

靜態資料區:儲存全域性變數、靜態變數、常量,常量包括final修飾的sting常量。系統自動分配和**;

棧區:儲存執行方法的形參、區域性變數、返回值。由系統自動分配和**;

2.為什麼函式呼叫要用棧來儲存臨時變數?

符合後進先出的特性;

leetcode:20,155,232,844,224,682,496.      

leetcode20

class leetcode20

public boolean isvalid(string s) ');

else if(stack.isempty() || stack.pop() != c)

} return stack.isempty();

}}

class solution:

def isvalid(self):

stack =

for char in s:

top_element = stack.pop() if stack else '#'

return false

else:

return not stack

s = "()()"

if solution.isvalid(s):

print("good")

else:

print("bad")

leetcode155:

//彈出 leetcode155

//演算法思想:每次min更新的時候,前一次的min被壓入棧,彈出的時候需要注意彈出的是否為min,如果是則更新min為前一次min

class minstack

stack.push(x);//隨後繼續將新的值壓入棧 }

public void pop()

public int top()

public int getmin()

}//演算法思想:將push值與min的差值壓入棧,差值為負,當前值為最小值

class minstackway2else

} public void pop()

public int top() else }

public int getmin()

}

leetcode232:

涉及 C 的 foreach問題

當時是用foreach實現遍歷,但是函式傳入引數是object型別的,由於objectl型別沒有實現相關介面,所以foreach並不能執行。那麼下面我們來看看,想要使用foreach需要具備什麼條件。需要實現ienumerable介面或宣告getenumerator方法的型別。下面我們來看看fore...

MySQL涉及鎖的問題

如何併發的訪問資料庫呢?答案就是加鎖。接下來說一下,資料庫的鎖機制,資料庫中都有哪些鎖?首先呢,鎖是一種併發控制技術,鎖是用來在多個使用者同時訪問同乙個資料的時候保護資料的。有2種基本的鎖型別 共享 s 鎖 多個事務可封鎖乙個共享頁 任何事務都不能修改該頁 通常是該頁被讀取完畢,s鎖立即被釋放。在執...

discuz涉及到的問題

其中 設定創始人 config global.php 修改 config admincp founder 1,511314 其中門戶管理中同步登陸 在discuz panel修改 construct將tbl common admincp session表中的 errorcount置為 1 panel...