0
我試圖將堆棧轉換爲字符串。我具備的功能是將堆棧轉換爲字符串
int StackToString(const struct Stack *stack, char *result, int resultSize);
我想我的籌碼看起來像
- 棧[STACK_MEMORY_ADDRESS]:
- 將Element_number:DATA ...
- 將Element_number:DATA
如果結果中有足夠的空間,字符串應該存儲在那裏,我想返回一個「1 「價值。如果沒有(由resultSize指定),那麼我們返回0,結果是未定義的。
到目前爲止,這是我寫:
int StackToString(const struct Stack *stack, char *result, int resultSize){
int i;
char str[20];
sprintf(str, "stack[0x%x]:\n", stack);
strcat(result, str);
for(i=0; i<stack->currentItemIndex;i++){
???
}
}
任何人都可以提供對我下一步該做什麼什麼建議嗎?我認爲我需要做一些衝刺,並將堆疊中的其餘元素與結果進行比較,並在確定的情況下返回,但我不確定如何實現它。...
將'sprintf'放入str和'strcat'中,就像剛剛在循環中一樣?這聽起來像是正確的想法。 – Patashu 2013-05-09 05:53:10
你在'stack'中保存了什麼樣的數據? – 2013-05-09 06:15:48
你被允許銷燬堆棧嗎?堆棧是否可以訪問內部元素?如果沒有,你很可能需要從一個堆棧中彈出物品,將它們轉換爲字符串,然後將物品推入另一個堆棧。當原始堆棧爲空時,您可以使用第二個堆棧彈出的項目重新加載 - 排序工作正常。 – 2013-05-09 07:36:35