其實我想用簡單的結構實現堆棧。簡單堆棧實現
爲什麼下面的代碼顯示垃圾而不是項目?堆棧完全推下一個項目後,它會無限?還有其他方法可以使用數組來實現堆棧。但我想試試這個。
我們怎麼能不使用指針來實現堆棧?
#include <iostream>
#define size 5
using namespace std;
int main()
{
int s[size];
int top = -1,item,choice;
char ans;
do {
cout << " =======================";
cout << " \n|Implementation of Stack|\n";
cout << " =======================";
cout<<"\n MAIN NENUE";
cout<<"\n 1. Push \n 2. Pop \n 3.Display ";
cin>>choice;
switch (choice) {
case 1:
cout<<"\n Enter the Item to be Pushed ";
cin>>item;
if (top != size -1) {
top++;
top = item;
} else {
cout<<"\nStack is Full ";
}
break;
case 2:
if (top == -1) {
cout<<"\n Stack is Empty ";
} else {
int item;
item = s[top];
top--;
}
break;
case 3:
if (top == -1) {
cout<<"\n Stack is Empty ";
} else {
for (int i = top; i >= 0; i--) {
cout<<"|" << s[i] << "|"<<endl;
}
}
break;
default:
cout<<" \n You have Pressed Invalid Key";
break;
}
cout<<"\n Do You Want To Continue ";
cin>>ans;
} while (ans == 'Y' || ans=='y');
return item;
}
!C = C++ ..都是不同的語言 – Haris 2014-10-20 17:08:14
你真的沒有一個「數據結構」在這裏,只是一些變數。如果你正在學習C++,你想從一個'class'開始。而且,C和C++可以與最新標準大不相同。一般來說,你不應該跨標籤。 – crashmstr 2014-10-20 17:08:49
爲什麼不讓你的堆棧成爲一個類,所以邏輯與I/O是分開的,因此更容易停止問題。 – 2014-10-20 17:08:56