【ShawnZhang】带你看数据结构——第五课:堆栈

其实吧,如果你坚持看到第五课,你就会发现,其实数据结构并没有你想象的那么复杂

当然我们一直在学习理论,并没有在实践,在后续将提供第一个十进制转二进制的源代码

有线性顺序表版本,线性链式表版本,堆栈顺序版本和堆栈链式版本

接下来,我们先讲述一下堆栈,其实吧,他就是线性表!

只是日常生活中,比如我们洗碗,我们的盘子放再那儿,一次往上放,用的时候,从上面开始拿

即先进后出,后出先进

计算机算加减乘除等,汉诺塔,迷宫,都是需要用到堆栈的,所以我们对线性(数组!!)表加以修饰限制成为了堆栈

堆栈就是一个数组,只能在数组的末尾进行删改插入等操作,其他位置是禁止操作的(不是不可以操作,只是操作了,就不是堆栈的特性了)

堆栈的底部(就是数组的开始)名栈底,堆栈的顶部称为栈顶(TOP经常用到英文),我们就在栈顶进行数据修改

下面给出进栈,出栈的代码:

请大家耐心读,建立对栈的概念

void push(int value)
{
    int i;
    if(top>=maxsize)   printf(“the stack is full\n”);
    else
        {
            printf(“the stack content before(T-B):”);
             for(i=top;i>=0;i--)
                   printf(“[%d]”,stack[i]);
             top++;
             stack[top]=value;
             printf(“\nthe stack content after push(T-B):”);
             for(i=top;i>=0;i--)
                 printf(“[%d]”,stack[i]);
             printf(“\n”);
         }}

int pop( )
{
    int temp, i;
    if(top<0)   {printf(“\n the stack is empty\n”); return –1;}
    else
        {
            printf(“the stack content before(T-B):”);
            for(i=top;i>=0;i - -)
                   printf(“[%d]”,stack[i]);
            temp=stack[top];
 top - -;
 printf(“\n the pop value is [%d]”,temp);
            printf(“\nthe stack content after pop(T-B):”);
            for(i=top;i>=0;i--)
                 printf(“[%d]”,stack[i]);
             printf(“\n”);
 retun temp;
         }}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值