栈的基本操作( too simple)

本文深入探讨了栈的基本操作,包括存储结构、创建、获取栈顶元素、插入与删除及销毁栈等,并通过C语言实现,为读者提供了一套完整的栈操作指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

栈的基本操作:

     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;
 }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值