スタックのシーケンスストレージ実装-単純なスタックおよびスタックの出力
1832 ワード
/************************************************************************
*
* :2.2.1.cpp
*
* :
*
* : fdk
* : 2018-07-30
*
* :1.0
*
* :
*
************************************************************************/
#include
#include
/* 100*/
#define MAXSIZE 100
using namespace std;
/* */
typedef struct
{
/* */
int data[MAXSIZE];
/* */
int top;
}stacks;
/* */
stacks *CreateStack();
/* */
void Push(stacks *ptrs, int x);
/* */
int Pop(stacks *ptrs);
int main()
{
int i;
int j;
int a[] = {2, 4, 5, 1, -2, 4, 6, 10};
stacks *s = CreateStack();
/* */
cout << " :";
for (i = 0; i < sizeof(a) / sizeof(a[0]); i++)
{
cout << a[i] << " ";
Push(s, a[i]);
}
cout << endl;
/* */
cout << " :";
for (i = 0; i < sizeof(a) / sizeof(a[0]); i++)
{
cout << Pop(s) << " ";
}
cout << endl;
return 0;
}
/* */
stacks *CreateStack()
{
/* ,malloc */
stacks *s = (stacks*)malloc(sizeof(stacks));
/* */
s->top = -1;
return s;
}
/* */
void Push(stacks *ptrs, int x)
{
if (ptrs->top == MAXSIZE - 1)
{
cout << " !" << endl;
return;
}
else
{
/* */
ptrs->data[++(ptrs->top)] = x;
return;
}
}
/* */
int Pop(stacks *ptrs)
{
if (ptrs->top == -1)
{
cout << " !" << endl;
exit(0);
}
else
{
/* */
return (ptrs->data[(ptrs->top)--]);
}
}