プッシュとポップがスタックでどのように機能するか理解できません。たとえば、数字をスタックにプッシュすると、最後にプッシュされた数字がポップオフされるため、それらがどのように機能するかを理解しています。また、ポインターの背後にあるロジックとそのしくみも理解しています。私が理解していないのは、コードがどのように書かれるべきかということです。
私のプログラムは、ユーザーがスタックを作成し (サイズを決定)、スタックにメモリ (数値) をプッシュするか、ポップオフするかを選択できるようにすることになっています。
これが私がこれまでに得たもので、行き詰まっています。私は cplusplus.com を通じて調査し、このことに関するほとんどすべてを読みましたが、プログラムがどのようにレイアウトされるべきか、どのように実行されるかをまだ理解できません。
#include<iostream>
#include<cstring>
#include<cmath>
#include<cstdlib>
using namespace std;
int choice;
int * arrPtr = NULL;
int * stack;
int * top;
int val, capacity, size;
//stack would point to the location of the first element,
// top would point to the location where the next element will be stored,
// capacity is the number of elements that can be stored in the stack,
// size would be the number of elements actually stored in the stack
int main()
{
//This is the menu
cout << "1. Create" << endl;
cout << "2. Push" << endl;
cout << "3. Pop" << endl;
cout << "4. Count" << endl;
cout << "5. Display" << endl;
cout << "6. Exit\n" << endl;
cin >> choice;
//I figured i would use choices for the menu and went ahead and wrote it out
switch(choice)
{
case 1:
create();
break;
case 2:
push();
break;
case 3:
pop();
break;
case 4:
count(0);
break;
case 5:
display();
break;
case 6:
exit();
default:
cout << "Please enter correct choice (1-4)!";
break;
}
return 0;
} //end main
void create()
{
cout << "Enter the size of the stack you wish to create: ";
int capacity = 0;
cin >> capacity;
arrPtr = new int[capacity];
} //end create function
//From here it went wrong, I cannot figure it out.
void push(){
for (int i = 0; i < capacity; i++)
{
cout << "Enter the number you wish to put on the stack: ";
cin >> val;
push(val)
}//end for
}//end push
これを理解するのを手伝ってください。