不使用“克隆”復制堆?;蜿犃?/h1>
2 回答

TA貢獻1797條經驗 獲得超6個贊
想象一下您有三個 Stack 的場景,Stack A(您要從中復制的那個)、Stack B(您要復制到的目標)和一個 Stack temp(輔助 Stack)。
Step 1: (The Initial Stack)
|1|? | |? | |
|2|? | |? | |
|3|? | |? | |
?A? ?TEMP? B
Step 2: (Move elements from Stack A to Temp Stack)
| |? | |? | |
|2|? | |? | |
|3|? |1|? | |
?A? ?TEMP? B
| |? | |? | |
| |? |2|? | |
|3|? |1|? | |
?A? ?TEMP? B
| |? |3|? | |
| |? |2|? | |
| |? |1|? | |
?A? ?TEMP? B
Step 3: (Move elements from Temp stack to Stack A & B)
| |? | |? | |
| |? |2|? | |
|3|? |1|? |3|
?A? ?TEMP? B
| |? | |? | |
|2|? | |? |2|
|3|? |1|? |3|
?A? ?TEMP? B
|1|? | |? |1|
|2|? | |? |2|
|3|? | |? |3|
?A? ?TEMP? B

TA貢獻1875條經驗 獲得超3個贊
要復制堆棧:
創建
temp
堆棧使用和將所有值從
origin
堆棧移動到堆棧temp
pop
push
origin
堆棧現在是空的,并且temp
堆棧是倒置的創建
copy
堆棧將所有值從
temp
堆棧移動到兩者origin
并copy
同時堆棧origin
返回到原始內容,并且copy
堆棧具有相同的內容。
添加回答
舉報