如何在没有以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