第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

不使用“克隆”復(fù)制堆棧或隊(duì)列

不使用“克隆”復(fù)制堆?;蜿?duì)列

冉冉說 2023-04-13 10:49:28
在不使用克隆的情況下復(fù)制堆棧和隊(duì)列。例如,當(dāng)我調(diào)用一個(gè)傳遞堆棧的方法時(shí),我不能修改保留傳遞的原始堆棧。我需要復(fù)制/克隆傳遞的 Stack 以在方法中更改/使用。我只能使用 Stack.java(附件)。我創(chuàng)建了以下輔助方法:public static Stack<CalendarDate> qToS(Queue<CalendarDate> q) {    Stack<CalendarDate> s = new Stack<CalendarDate>();    while (!q.isEmpty()) {       CalendarDate n = q.remove();       s.push(n);    }    return s; // Return stack s}public static Queue<CalendarDate> sToQ(Stack<CalendarDate> s) {    Queue<CalendarDate> q = new LinkedList<CalendarDate>();    while (!s.empty()) {       CalendarDate n = s.pop();       q.add(n);    }    return q; // Return queue q}/*          Provided as a Stack Class alternative    Limits user to actual Stack methods    so Vector<E> is not available*/public class Stack<E> {    // avoid blanked import of java.util    private java.util.Stack<E> secret;    // default constructor    public Stack() {        secret = new java.util.Stack<E>();    }     // empty that collection    public void clear() {        secret.clear();    }    // should be order constant    public int size() {        return secret.size();    }    // simply have push call push from API    public E push(E a) {        secret.push(a);        return a;    }    // And, empty calls empty from API    public boolean empty() {        return secret.empty();    }    // And my pop() uses pop() form JAVA API    public E pop() {        return secret.pop();    }    // My peek uses their peek    public E peek() {        return secret.peek();    }    // Following are not basic Stack operations    // but needed to do some simple testing    // toString is probably not O(constant)    public String toString() {        return secret.toString();    }}
查看完整描述

2 回答

?
互換的青春

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊

想象一下您有三個(gè) Stack 的場(chǎng)景,Stack A(您要從中復(fù)制的那個(gè))、Stack B(您要復(fù)制到的目標(biāo))和一個(gè) 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


充分理解的最好方法是舉個(gè)例子并親自嘗試一下。



查看完整回答
反對(duì) 回復(fù) 2023-04-13
?
翻過高山走不出你

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊

要復(fù)制堆棧:

  • 創(chuàng)建temp堆棧

  • 使用和將所有值從origin堆棧移動(dòng)到堆棧temppoppush

  • origin堆?,F(xiàn)在是空的,并且temp堆棧是倒置的

  • 創(chuàng)建copy堆棧

  • 將所有值從temp堆棧移動(dòng)到兩者origincopy同時(shí)堆棧

  • origin返回到原始內(nèi)容,并且copy堆棧具有相同的內(nèi)容。


查看完整回答
反對(duì) 回復(fù) 2023-04-13
  • 2 回答
  • 0 關(guān)注
  • 154 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)