注册 登录
编程论坛 数据结构与算法

求各位高手找错啊 一个栈的建立与输出 一调试总是出错

麦迪依然 发布于 2012-04-23 21:34, 524 次点击
#include<iostream>
using namespace std;
 typedef struct SeqStack
 {
     int *elem[10];
     int top;
 }*s;
void InitStack(SeqStack *s)
 {
s->elem[10]=new int[10];
if(s->elem[10]=NULL)
{cout<<"内存不足!\n";
exit(1);}
 s->top=-1;
}

 int push(SeqStack *s,int e)
 {if(s->top!=9)
 {s->top++;
 *s->elem[s->top]=e;
 return true;
 }
 return false;
 }
int pop(SeqStack *s,int&e)
{if(s->top!=-1)
{e = *s->elem[s->top];
s->top--;
return true;
}
return false;
}

int main()
{SeqStack s;
InitStack(&s);
int i,e;
cout<<"现在是元素入栈(栈中最多只能存10个元素): \n";
for(i=1;i<=10;i++)
{cout<<"输入元素为:\n";
cin>>e;
push(&s,e);
}
cout<<endl;
cout<<"现在是元素出栈:\n";
for(i=1;i<=10;i++)
{pop(&s,e);
cout<<e<<"\t";}
return 0;
}


求找错  为什么一调试就会出错呢?死活找不着原因呀,求高位高手帮帮忙
6 回复
#2
zrt4929989502012-04-23 22:57
#include<iostream>
using namespace std;
struct SeqStack
{
    int elem[10];
    int top;
};                                    //既然后面用SeqStack定义结构体变量为什么还要用typedef呢
void InitStack(SeqStack *s)
{
//    s->elem[10]=new int[10];
//    if(s->elem[10]=NULL)
//  {
//        cout<<"内存不足!\n";
//     exit(1);}
    s->top=-1;
}

int push(SeqStack *s,int e)
{
    if(s->top!=9)
    {
        s->top++;
        s->elem[s->top]=e;
        return true;
    }
    return false;
}
int pop(SeqStack *s,int&e)
{
    if(s->top!=-1)
    {
        e = s->elem[s->top];
        s->top--;
        return true;
    }
    return false;
}

int main()
{
    SeqStack s;
    InitStack(&s);
    int i,e;
    cout<<"现在是元素入栈(栈中最多只能存10个元素): \n";
    for(i=1;i<=10;i++)
    {
        cout<<"输入元素为:\n";
        cin>>e;
        push(&s,e);
    }
    cout<<endl;
    cout<<"现在是元素出栈:\n";
    for(i=1;i<=10;i++)
    {
        pop(&s,e);
        cout<<e<<"\t";
    }
    return 0;
}
#3
佳嘉2012-04-23 23:01
s->elem[10]


if(s->elem[10]=NULL)
#4
麦迪依然2012-04-23 23:07
谢谢大家  真心谢谢你们
#5
麦迪依然2012-04-23 23:22
为啥语句前加上//就运行正常了呢?高手明示啊
谢谢
#6
麦迪依然2012-04-24 15:44
求文字指教啊  我写的这个哪里出现问题了?
#7
麦迪依然2012-04-24 15:46
回复 2楼 zrt492998950
为啥把结构体中的*去掉并且 语句前加了注释号就运行正确了呢?求您指教啊
1