回 帖 发 新 帖 刷新版面

主题:[原创]想不通

#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;    
}
  不知道为是什么在我对这个栈插入以后在输出这个栈就没有什么输入的。高手给我看一下啊!!!

回复列表 (共4个回复)

沙发

用结构里定义函数?
这样做太乱了.
结构只定义简单的数据类型就行了.

class my
{
public:
a();
b();
c();
};

my::a();
{
}
my::b();
{
}
my::c();
{
}

这样看起来简洁一些.

板凳


感觉确实是是那样的,可读性。以后会注意,不过我的那个问题还没有解决???

3 楼

Strack a;

应该是struct Strack a;吧

4 楼

结构的对象定义有误。
Strack a;

应该为struct Strack a;

我来回复

您尚未登录,请登录后再回复。点此登录或注册