数据结构栈问题 很多错误 求改正 谢谢 代码在回答的附件中

#include<iostream>
using namespace std;
#include<stdlib.h>
#define STACK_INIT_SIZE 100 //栈空间初始分配量
#define STACKINCREMENT 10 //分配增量
typedef int SElemType;
typedef struct{
SElemType *base;//指向栈底,构造和销毁之前值为NULL
SElemType *top;//栈顶指针
int stacksize;//栈的大小
}SqStack;
int lnitStack(SqStack&S)//顺序栈的初始化,构造一个空栈
{
S.top=S.base=new SElemType[STACK_INIT_SIZE];
if(S.base==0)return 0;//若申请空间失败,返回0
S.stacksize=STACK_INIT_SIZE;
return 1;//栈初始化成功,返回1
}
int push (SqStack&s,SElemType e)
{
//向栈S中压入元素e
if(S.top-S.base==S.stacksize)//栈空间已满,增加空间
{
SElemType*newbase;
newbase=new
SElemType[S.stacksize+STACKINCREMENT];
if(newbase==0)return 0;
for(int i=0;i<S,stacksize-1;i++)//将原来栈中的元素拷贝到新栈中
{
newbase[i]=S.base[i];
}
{
SElemType*p=S.base;
while(p<S.top)
{
cout<<*p<<" ";
p++;
}
cout<<endl;
}
char*NumTransform(int N)
{
int m;//存储商
int n;//储存余数
SqStack S;
InitStack(S);
if(N==0)
return "0";
while(N!=0)
{
m=N/2;
n=N%2;
push(S,n);
N=m;
}
char str[100];//用于储存二进制串
int index=0;
while(Empty(S)==false)
{
int temp;
pop(S,temp);
str[index]=temp-0+'0';//如何把一个0-9的整数换成对应的字符。
index++;
}
str[index]='0';//字符串的结束符
DestroyStack(S);
return str;
}

int push (SqStack&s,SElemType e)
{
//向栈S中压入元素e
if(S.top-S.base==S.stacksize)//栈空间已满,增加空间
{
SElemType*newbase;
newbase=new
SElemType[S.stacksize+STACKINCREMENT];
if(newbase==0)return 0;
for(int i=0;i<S,stacksize-1;i++)//将原来栈中的元素拷贝到新栈中
{
newbase[i]=S.base[i];
}{
SElemType*p=S.base;
while(p<S.top)
{
cout<<*p<<" ";
p++;
}
cout<<endl;
}
看不见你的附件,这个函数中int push (SqStack&s,SElemType e),你定义的是小s,在函数心里面你也要用小s追问

可不可以帮我 整体改一下

追答

你发来,不过不一定能帮你改得好,我也是新手

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

数据结构中计算栈的长度的函数看不懂
你这个栈的结构体定义应该贴出来。s[0 ]s[1 ]s[2 ]s[3 ]比如p首先指向是s[0],p=s.top。然后p开始往下挪动,一直到p等于s.base为止。p++不是往上的,是往下的...比如在数组里&a[0]=p;p++;之后p就指向a[1]了。栈顶在上,栈底在下,s.base应该相当于我的s[3]位置。 本回答由提问者推荐 举报...

数据结构栈的问题,判断字符串是否中心对称
\/\/ 判断顺序表前n个元素是否对称Status Judge(LinkList L,int n){char s[n\/2];LNode* p = L->next;for(int i = 0;i<n\/2;i++){s[i] = p->data;p = p->next;}i--;if(n % 2 == 1) p = p->next;while(p && s[i] == p->data){i--;p = p->next;}return...

c++ 的cin输入和类型通用的问题
赋值语句“=”中间包含了强制类型转换,比如double型赋值给int整型,就会发生数据截断。 而输入流“cin>>”没有此功能,它只要求输入的内容与变量的类型相符即可,若不相符,则此语句为非法(但是并非所有的编译器都报错)。自动忽略此语句。数据在内存中保存为二进制形式,也即ASCII码,没有错误。祝...

说明高级语言.汇编语言和机器语言的联系.要专业一点的回答,谢谢!
解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。 编译类:编译是指在应用源程序执行之前,就将程序源...

c++编译出来的程序不是直接运行在windows下的吗? 为什么又有c++运行...
因为你的程序链接的库是动态链接库,C++运行时的作用是在没有开发环境的计算机上提供同样的动态链接库

相似回答