数据结构实验--栈的相关操作

本文介绍了一个使用C语言实现的简单栈数据结构。包括栈的初始化、检查栈是否为空、清空栈、入栈、出栈及获取栈顶元素等功能,并提供了完整的代码示例。

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

#include"stdio.h"
#define M 1024


typedef struct
{
    int data[M];
    int top;
}stack;


stack A;


//A.top=0;
Initstack()//栈的初始化函数
{  

   A.top=0;int k,i;
   printf("请输入栈的初始元素个数/n");
   scanf("%d",&k);
   printf("请输入栈的初始元素/n");
 

   for(i=0;i<k;i++)
 { 

     scanf("%d",&A.data[i]);

     A.top++;
     printf("已经将栈进行了初始化/n");
  }
}

 

Checkstack()//检查顺序栈是否为空

   int tag;
   if(A.top==0)
  {

    tag=0;
   printf("顺序栈为空/n");

  }
  else

  {

    tag=1;
    printf("栈不为空/n");

   }
    return tag;

}

Clearstack()//将栈清空
{
  if(A.top==0)
  printf("该栈本身就为空,不用执行清空操作!/n");
  else
  A.top=0 ;
   
  printf("已经将栈清空/n");
}


Pushstack(int x)//将x入栈
{  
 
 printf("请输入要入栈的元素:/n");
 scanf("%d",&x);
    A.top++;
 A.data[A.top]=x;
   
}


Popstack(int e)//取出栈顶元素,并用e返回

 e=A.data[A.top];
 A.data[A.top]=A.data[A.top-1];
 A.top=A.top-1;
    printf("栈顶元素为%d/n",e); 
}


Gettop(int s)//用s返回栈顶元素,不删除栈顶元素

  if(A.top==0)
    printf("栈为空/n");
 
   else {s=A.data[A.top-1];
   printf("/n栈顶元素为%d",s);}
}


Printstack()

   int i;
   i=A.top;
   printf("栈中的元素为/n");

 for(i+1;i>0;i--)
  printf("%d",A.data[i-1]);
}


 void main()
 {  
    int x,e,s;
    
    Initstack();
    Gettop(s);
    Pushstack(x);
    //Printstack();
    Checkstack();
    Popstack(e);
    Printstack();
    //Gettop(s);
    Checkstack();
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

perman_scut

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值