#include <iostream>
using namespace std;
#define STACKSIZE 100
#define EMPTY 65535
typedef struct Node
{
int data;
int prefix;
}Node;
int fix = -1;
int pt1 = -1, pt2 = -1, pt3 = -1;
void push(Node* S, int data, int type)
{
fix++;
S[fix].data = data;
if (type == 1)
{
S[fix].prefix = pt1;
pt1 = fix;
}
else if (type == 2)
{
S[fix].prefix = pt2;
pt2 = fix;
}
else
{
S[fix].prefix = pt3;
pt3 = fix;
}
}
int pop(Node* S, int type)
{
int re;
if (type == 1)
{
if (pt1 < -1)
{
return EMPTY;
}
re = S[pt1].data;
pt1 = S[pt1].prefix;
}
else if (type == 2)
{
if (pt2 < -1)
{
return EMPTY;
}
re = S[pt2].data;
pt2 = S[pt2].prefix;
}
else
{
if (pt1 < -1)
{
return EMPTY;
}
re = S[pt3].data;
pt3 = S[pt3].prefix;
}
return re;
}
int main(void)
{
Node Stack[STACKSIZE];
for (int i = 0; i < STACKSIZE; ++i)
{
Stack->prefix = -1;
}
push(Stack, 3, 3);
push(Stack, 1, 1);
push(Stack, 2, 2);
push(Stack, 5, 2);
push(Stack, 4, 1);
push(Stack, 6, 3);
cout<<pop(Stack, 1)<<endl;
cout<<pop(Stack, 2)<<endl;
cout<<pop(Stack, 3)<<endl;
cout<<pop(Stack, 1)<<endl;
cout<<pop(Stack, 2)<<endl;
cout<<pop(Stack, 3)<<endl;
return 0;
}
Q3.1
最新推荐文章于 2024-08-07 11:24:59 发布