回复 2楼 rjsp
这个文件就可以使用 引用传递。
#include"stdio.h"
#include"stdlib.h"
#define STACK_INIT_SIZE 100
#define STACKINCREAMENT 10
typedef char SElemType;
typedef struct {
SElemType *base;
SElemType *top;
int stacksize;
}SqStack;
void InitStack(SqStack &s);
void Push(SqStack &s,SElemType e);
void showStack(SqStack s);
int GetLength_Stack(SqStack s);
void Pop(SqStack &s,SElemType &e);
void GetTop(SqStack s,SElemType &e);
int StackEmpty(SqStack s);
void main()
{
SqStack s;
SElemType e;
InitStack(s);
Push(s,'s');
Push(s,'h');
Push(s,'g');
showStack(s);
GetTop(s,e);
printf("%c",e);
showStack(s);
}
void InitStack(SqStack &s)
{
s.base=(SElemType*)malloc(sizeof(SElemType)*STACK_INIT_SIZE);
if(!s.base) exit(1);
s.top=s.base;
s.stacksize=STACK_INIT_SIZE;
}
void Push(SqStack &s,SElemType e)
{
if(s.top-s.base>=s.stacksize)
{
s.base=(SElemType*)realloc(s.base,(STACK_INIT_SIZE+STACKINCREAMENT)*sizeof(SElemType));
s.stacksize=STACK_INIT_SIZE+STACKINCREAMENT;
}
if(!s.base)exit(1);
*s.top++=e;
}
void showStack(SqStack s)
{
printf("显当前顺序栈内的数据\n");
while(s.top!=s.base)
{
printf("%c\t",*(--s.top));
}
}
int GetLength_Stack(SqStack s)
{
int num=0;
while(s.top!=s.base)
{
--s.top;
num++;
}
return num;
}
void Pop(SqStack &s,SElemType &e)
{
if(s.base==s.top)
{
printf("空栈\n");
exit(1);
}
e=*(--s.top);
}
void GetTop(SqStack s,SElemType &e)
{
if(s.base==s.top) exit(1);
e=*(s.top-1);
}
int StackEmpty(SqStack s)
{
if(s.base==s.top)
return 1;
else
return 0;
}
但是 我不知道这个文件 为什么用使用成功