【数据结构】顺序栈
发布时间:2021-03-31 12:22:34 所属栏目:安全 来源:网络整理
导读:#include STDIO.H#include STRING.H#include STDLIB.Htypedef struct SeqStack{int length;int top;char *data;}seqstack;seqstack* CreatStack(seqstack *s,int n){s=(seqstack *)malloc(sizeof(seqstack)+n*sizeof(char));if(s==NULL) return NULL;memset(
|
#include <STDIO.H>
#include <STRING.H>
#include <STDLIB.H>
typedef struct SeqStack
{
int length;
int top;
char *data;
}seqstack;
seqstack* CreatStack(seqstack *s,int n)
{
s=(seqstack *)malloc(sizeof(seqstack)+n*sizeof(char));
if(s==NULL) return NULL;
memset(s,sizeof(seqstack)+n*sizeof(char));
s->length=n;
s->top=0;
s->data=(char *)(s+1);
return s;
}
int StackEmpty(seqstack *s)
{
if(s->top==0)
return 1;
else
return 0;
}
int GetTop(seqstack *s,char *e)
{
if(s->top==0)
return -1;
*e=s->data[(s->top)-1];
return 0;
}
int PushStack(seqstack *s,char e)
{
if(s->top==s->length)
return -1;
s->data[s->top]=e;
s->top+=1;
return 0;
}
int PopStack(seqstack *s,char *e)
{
*e=s->data[s->top-1];
s->top-=1;
return 0;
}
int StackLength(seqstack *s)
{
return s->top;
}
void InitStack(seqstack *s)
{
s->top=0;
}
void destroyStack(seqstack *s)
{
free(s);
}
int main()
{
seqstack *s=NULL;
int i;
char e=65;
s=CreatStack(s,10);
printf("%dn",StackEmpty(s));
for(i=0;i<s->length;i++)
{
PushStack(s,65+i);
GetTop(s,&e);
printf("%c,",e);
}
printf("n");
printf("%dn",StackEmpty(s));
for(i=0;i<s->length;i++)
{
PopStack(s,e);
}
printf("n");
printf("%dn",StackEmpty(s));
destroyStack(s);
return 0;
}
(编辑:清远站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

