如何在沒有以MAXSIZE-1開始的情況下將項目推到數組的前端(如堆棧)?我一直在試圖使用模運算符這樣做..隊列+堆棧C++
bool quack::pushFront(const int nPushFront)
{
if (count == maxSize) // indicates a full array
{
return false;
}
else if (count == 0)
{
++count;
items[0].n = nPushFront;
return true;
}
intBack = intFront;
items[++intBack] = items[intFront];
++count;
items[(top+(count)+maxSize)%maxSize].n = nPushFront;
/*
for (int shift = count - 1; shift >= 0; --shift)
{
items[shift] = i€tems[shift-1];
}
items[top+1].n = nPushFront; */
return true;
}
「江湖」,意思是隊列和堆棧之間的交叉。我不能簡單地將我的元素移動1,因爲它非常低效。我已經爲此工作了一個多月。我只需要使用模運算符來指導push_front ...我不認爲循環甚至是必要的。
它很有趣,因爲我需要隨機打印列表。所以,如果我開始增加值到我的整數數組的MAXSIZE-1元素,然後需要打印的陣列,我會有垃圾值..
not actual code:
pushFront(2);
pushFront(4);
cout << q;
如果我們開始從後面將我會得到一些空值。 我不能簡單地將數組元素向下或向上移動一個。
我不能使用任何stls或boosts。
爲什麼不能使用STL,這是C++的標準部分,已經有十多年了? – ChrisInEdmonton 2009-11-04 18:51:46
「我已經爲此工作了一個多月了。」如果您沒有提供足夠的信息並且不回答其他人提出的問題,則需要花費更長的時間:http:// stackoverflow。com/questions/1665459/1665507#1665507無法提供足夠的信息而無休止地重複發佈相同的問題不會幫助你。 – sbi 2009-11-04 18:52:54
@ChrisInEdmonton,如果這是一項家庭作業問題,那麼使用STL或Boost將刪除此數據結構分配的任何學習值。 – 2009-11-04 19:01:30