首页 > 其他 > 详细

栈的基本操作( too simple)

时间:2014-11-11 16:36:54      阅读:267      评论:0      收藏:0      [点我收藏+]

栈的基本操作:

     1,存储结构:

      2,创建空战:

      3,获取栈顶元素:(判空)

      4,插入和删除:

      5,销毁栈:

# define stack_init_size 100
# define  stackincrement 10
 typedef int SElemType;

 typedef struct
 {
     SElemType  *base;
     SElemType  *top;
     int stacksize;
 }SqStack;


 void DestoryStack(SqStack &S)
 {
     S.top=S.base;
     free(S.base);
 }

 void TraverseStack(SqStack S)
 {
     while(S.top!=S.base)
     {
         printf("%d ",*--S.top);
     }
 }

 int CreatStack(SqStack &S)
 {
     S.base=(SElemType *)malloc(stack_init_size*sizeof( SElemType ) );
     if(!S.base)   exit(-2) ;
     S.top=S.base;
     S.stacksize=stack_init_size;
 }

 void  GetTop(SqStack &S,int &e)
 {
     if(S.base==S.top)  return ;
      e=*(S.top-1);
 }

 void  Pop(SqStack &S,int &e)
 {
     if(S.top==S.base)  return ;
     e=*--S.top;
 }

 void InsertStack(SqStack &S,int &e)
 {
     if(S.top-S.base>S.stacksize)
     {
         S.base=(SElemType *)realloc(S.base,(S.stacksize+stackincrement)*sizeof(SElemType));
         if(!S.base) exit(-2);
         S.top=S.base+S.stacksize;
         S.stacksize+=stackincrement;
     }
     *S.top++=e;
 }


栈的基本操作( too simple)

原文:http://blog.csdn.net/u013514722/article/details/41012307

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!