数据结构 为什么这样不行?

//十进制转换成二进制
#include<Stdio.h>
#include<malloc.h>
#define MaxSize 50
typedef int ElemType;
typedef struct
{
ElemType data[MaxSize];
int top;
}SqStack;
void InitStack(SqStack *&s)
{
s=(SqStack*)malloc(sizeof(SqStack));
s->top=-1;
}
int Push(SqStack *&s,ElemType e)
{
if(s->top==MaxSize-1)
return 0;
s->top++;
s->data[s->top]=e;
return 1;
}
int POp(SqStack *&s,ElemType &e)
{
if(s->top==-1)
return 0;
e=s->data[s->top];
s->top--;
return 1;
}
void main()
{
ElemType e;
SqStack *s;
InitStack(s);
void Conversion(int Num)
{
InitStack(s);
while(Num)
{
Push(s,Num%2);
Num=Num/2;
}
while(!StackEmpty(s))
{
Pop(s,e);
printf("%d",e);
}
printf("\n");
}
Conversion(13);
}

有几个地方有误:
1,Conversion 不能放在main函数中。
2,int POp(SqStack *&s,ElemType &e)
应为int Pop(SqStack *&s,ElemType &e)
3,少一个StackEmpty(s)函数

补充更正如下:

#include<Stdio.h>
#include<malloc.h>
#define MaxSize 50
typedef int ElemType;
typedef struct
{
ElemType data[MaxSize];
int top;
}SqStack;
void InitStack(SqStack *&s)
{
s=(SqStack*)malloc(sizeof(SqStack));
s->top=-1;
}
int Push(SqStack *&s,ElemType e)
{
if(s->top==MaxSize-1)
return 0;
s->top++;
s->data[s->top]=e;
return 1;
}
int Pop(SqStack *&s,ElemType &e)
{
if(s->top==-1)
return 0;
e=s->data[s->top];
s->top--;
return 1;
}
bool StackEmpty(SqStack *&s)
{
return (s->top==-1);
}
void Conversion(int Num)
{
ElemType e;
SqStack *s;
InitStack(s);
while(Num)
{
Push(s,Num%2);
Num=Num/2;
}
while(!StackEmpty(s))
{
Pop(s,e);
printf("%d",e);
}
printf("\n");
}
void main()
{

Conversion(13);

}
温馨提示:内容为网友见解,仅供参考
无其他回答

数据结构到底难在哪里?
(1)无法接受它的描述方式。数据结构的描述大多是抽象的形式,我们习惯了使用自然语言表达,难以接受数据结构的抽象表达。不止一个学生问我,书上的“ElemType”到底是什么类型?运行时怎么经常提示错误。它的意思就是“元素类型”,只是这样来描述,你需要什么类型就写什么类型,例如int。这样的表达方式会...

数据结构实验成功的关键是什么
一锅汤,一个人实验效率或实验适应不行,不仅会占用实验资源,阻碍他人实验效率,而且会给低年级的学生树立不行的表率,致使整个实验团队效率的低下和实验气氛的破坏,这种阻碍是相当恶劣的,必然得杜绝,因此,尽力的帮忙他人,营造好的实验气氛。预备,包括理论的预备和实验材料的预备超级重要;接下来确实是严谨认真的操作,若...

是不是每一个大型程序中都需要定义数据结构?不定义行不行
从理论上来说即使不定义任何结构体、类和联合等结构编写程序也是完全没问题的。但是在实际操作中如果代码行数很大,或者文件实现的功能很复杂,只用一些零散的变量去编写是很混乱并且很艰难并且不可维护的。一般为了逻辑性和维护性考虑,都会将许多相关的数据组合成一定的结构,做成一个数据模型,用来方便操作...

计算机软件水平考试:《数据结构》是核心
这里说的“不求甚解”并不是指不认真学习。学习时最怕钻牛角尖:看书时一个问题不明白,就在那里卡住,非解决它不可——这样的方法不行。首先,它会严重打击你的自信心,使你丧失继续学习下去的兴趣;其次,这样浪费了许多时间。因此学习时要给自己留一些“不懂”...

数据结构是干什么用的呢?
不行的,我们必须还要有车床,还要有砂纸等工具。所以我们要制作锤子,就要具有一定的工具。现在又有一个问题提出来了,可以不用工具吗?可以,但是你会浪费很多的时间和精力。数据结构就是为了制作工具而发明的,有了工具,解决问题就容易的多了。再来一个程序例子:假如我们在c语言的学习中,没有学习...

数据结构学得好烂,参加ACM行不行?
当然不可以。连数据结构都学不好,怎么学算法。算法要利用到数据结构的。如果你想在ACM走的更远,这些学不好跟本不行,acm这方向,汗水是不太够的,其实计算机专业就是一个数学专业,如果你从小数学不行,还特怕数学,那根本没戏,即使能参加,也走不了太远(当然有特殊情况),打击是必须的,如果...

...学完可以不可以直接去实习(数据结构,数据库什么的都不会)?_百度知 ...
没有什么不行的, 你的目的只是实习, 要求没那么高的。基本也做不了什么东西,都是去学的

关于数据结构排序算法的问题
据可以发现它耗时相差不多,相差的只是数据移动时间),可见对数据的有序性不敏感。它虽然比较次数多,但它的数据交换量却很少。所以我们将发现它在一般情 况下将快于冒泡排序。冒泡排序:在最优情况下只需要经过n-1次比较即可得出结果,(这个最优情况那就是序列己是正序,从100K的正序结果可以看出...

关于自考《数据结构导论》的疑问!同比C语言(分不多全给,请不啬指点)
你得明确学习的目的,你现在学会数据结构并不能编程,学数据结构好比学建筑的,学设计房屋,而编程好比该房,两者之间还是有一个过度的,所以你现在因为无法编程,或无法将其与编程联系起来而感到很吃力,这是在学习上的误区,要想学好数据结构,要弄明白程序运行的过程(c是面向过成的),多和其他的...

数据结构 怎么学啊 真心听不懂了。上学期C语言只是刚刚过而已 。怎么...
数据结构这门课比较抽象,通常是需要C语言基础的(所以你们学校先开的C语言课程),我是过来人,当时我刚刚开始学习的时候也是一样的听不懂。建议你可以先了解一个大概的概念和思想,然后学习高级语言或底层语言,编程初级者,一般不会很理解数据结构的重要性,但当你编程达到一定水平后,就会发现学好数据...

相似回答
大家正在搜