不使用“克隆”復制堆?;蜿犃?/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堆棧移動到堆棧temppoppushorigin堆棧現在是空的,并且temp堆棧是倒置的創建
copy堆棧將所有值從
temp堆棧移動到兩者origin并copy同時堆棧origin返回到原始內容,并且copy堆棧具有相同的內容。
添加回答
舉報
