我有一个实现堆栈类的通用列表类(主类),我将在下面显示主类的推送部分:(s1是通过复制构造函数生成的列表的副本)
for (int i=0; i<1000; i++) // push 1000 times with i+100
s1.Push(i+100);
cout << "*Push(i+100) 1000 times\ns1=" << s1 << endl;
cout << "s1.Size()=" << s1.Size() << endl;
cout << "s1.IsEmpty()=" << ((s1.IsEmpty()) ? "T" : "F") << endl;
cout << "s1.IsFull()=" << ((s1.IsFull()) ? "T" : "F") << endl;
cout << "s1.Peek()=" << s1.Peek() << endl;
cout << endl;
我推动的方法是:
`void Push(T item)
{
Node *p = new Node;
p -> data = item;
p->link = top;
top = p;
num_items++;
}`
我期望收到的输出是:
*Push(i+100) 1000 times
s1=129 128 127 126 125 124 123 122 121 120 119 118 117 116 115 114 113 112 111 110 109 108 107 106 105 104 103 102 101 100
s1.Size()=30
s1.IsEmpty()=F
s1.IsFull()=T
s1.Peek()=129
但我收到了这个输出,我将在下面的图片中发布。
编辑: 当我将其更改为仅推送100个堆栈时,这是我得到的输出,
白色的左边是预期的输出,我希望增加清晰度。
答案 0 :(得分:0)
这个推送功能有效,非常感谢@ user1781290
int Push(const T& item)
{
int res = -1;
if(num_items != MAX_SIZE)
{
Node *p = new Node;
p -> data = item;
p->link = top;
top = p;
res = ++num_items;
}
return res;
}