主题:[原创]想不通
#include<iostream>
#include <stdlib.h>
using namespace std;
#define MaxSize 30
struct Strack
{
void InitStack(Strack &s)const
{
s.top=-1;
}
void Push(Strack &s,int x) const
{ if(s.top>MaxSize)
exit(0);
else
{
s.stack[s.top]=x;
s.top++;
}
}
void Pop(Strack &s)const
{
while(top!=0)
{
s.top--;
cout<<s.stack[s.top]<<" ";
}
}
int StackEmpty(Strack &s)const
{
if(s.top==0)
return 0;
else
return 1;
}
void Insert(Strack &s,int x,int n)
{
for( int i=s.top ;i>x;i--)
s.stack[i+1]=s.stack[i];
s.top++;
s.stack[x]=n;
}
int stack[MaxSize];
int top;
};
void main()
{
Strack a;
a.InitStack(a);
int x;
cout<<"请输入元素 当输0时候结束"<<endl;
cin>>x;
while(x!=0)
{
a.Push(a,x);
cin>>x;
}
cout<<"输入栈的顺序是:"<<endl;
while(a.StackEmpty(a))
{
a.Pop(a);
}
cout<<"请输入你要插入的位置和插入的元素"<<endl;
int a1,a2;
cin>>a1;
cin>>a2;
a.Insert(a,a1,a2);
while(a.StackEmpty(a))
{
a.Pop(a);
}
cout<<endl;
}
不知道为是什么在我对这个栈插入以后在输出这个栈就没有什么输入的。高手给我看一下啊!!!
#include <stdlib.h>
using namespace std;
#define MaxSize 30
struct Strack
{
void InitStack(Strack &s)const
{
s.top=-1;
}
void Push(Strack &s,int x) const
{ if(s.top>MaxSize)
exit(0);
else
{
s.stack[s.top]=x;
s.top++;
}
}
void Pop(Strack &s)const
{
while(top!=0)
{
s.top--;
cout<<s.stack[s.top]<<" ";
}
}
int StackEmpty(Strack &s)const
{
if(s.top==0)
return 0;
else
return 1;
}
void Insert(Strack &s,int x,int n)
{
for( int i=s.top ;i>x;i--)
s.stack[i+1]=s.stack[i];
s.top++;
s.stack[x]=n;
}
int stack[MaxSize];
int top;
};
void main()
{
Strack a;
a.InitStack(a);
int x;
cout<<"请输入元素 当输0时候结束"<<endl;
cin>>x;
while(x!=0)
{
a.Push(a,x);
cin>>x;
}
cout<<"输入栈的顺序是:"<<endl;
while(a.StackEmpty(a))
{
a.Pop(a);
}
cout<<"请输入你要插入的位置和插入的元素"<<endl;
int a1,a2;
cin>>a1;
cin>>a2;
a.Insert(a,a1,a2);
while(a.StackEmpty(a))
{
a.Pop(a);
}
cout<<endl;
}
不知道为是什么在我对这个栈插入以后在输出这个栈就没有什么输入的。高手给我看一下啊!!!