數組結構實現固定大小的棧和隊列
數組實現固定大小棧
#include <iostream>
using namespace std;
int index = 0;
void push(int* a,int num,int i)
{
if (index >= i)
cout << "zhanding yichu" << endl;
a[index++] = num;
}
int pop(int* a, int i)
{
int pop;
if (index == 0)
cout << "zhandi wei0" << endl;
pop = a[--index];
return pop;
}
int read(int* a, int i)
{
int pop;
if (index == 0)
cout << "zhandi wei0" << endl;
pop = a[index-1];
return pop;
}
void newstack(int* a, int i)
{
if (a == nullptr || i < 0)
return;
push(a, 1, i);
push(a, 2, i);
int res = pop(a, i);
push(a, 3, i);
int res1 = read(a, i);
int res2 = read(a, i);
int res3 = pop(a, i);
int res4 = pop(a, i);
cout << res << endl;
cout << res1 << endl;
cout << res2 << endl;
cout << res3 << endl;
cout << res4 << endl;
}
int main()
{
int a[100] = { 0 };
newstack(a, 3);
system("pause");
return 0;
}
數組實現固定大小隊列
#include <iostream>
using namespace std;
int start = 0;
int end1 = 0;
int realsize = 0;
void push(int* a,int num,int initsize)
{
if (realsize >= initsize)
return;
a[end1] = num;
end1 = end1 == initsize - 1 ? 0 : end1 + 1;
realsize++;
}
int poll(int* a,int initsize)
{
if (realsize == 0)
cout << "error" << endl;
realsize--;
int temp = start;
start = start == initsize - 1 ? 0 : start + 1;
return a[temp];
}
void queue(int* a,int initsize)
{
push(a, 1, initsize);
push(a, 2, initsize);
int res = poll(a, initsize);
int res1 = poll(a, initsize);
cout << res << endl;
cout << res1 << endl;
}
int main()
{
int a[100] = { 0 };
queue(a, 3);
system("pause");
return 0;
}