zoukankan      html  css  js  c++  java
  • 栈的概念

    今天跟大家浅谈一下栈的概念

            栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表。栈是一种数据结构,它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据。栈是只能在某一端插入和删除的特殊线性表。用桶堆积物品,先堆进来的压在底下,随后一件一件往堆。取走时,只能从上面一件一件取。读和取都在顶部进行,底部一般是不动的。栈就是一种类似桶堆积物品的数据结构,进行删除和插入的一端称栈顶,另一端称栈底。插入一般称为进栈,删除则称为退栈。

        栈也称为后进先出表。如下图,1,2,3。1先进栈,放在最下方,随后2,3进栈。在出栈的时候3在最上面最先出栈。随后2,1出栈。:

    下面,我们通过一个程序来展现一下栈在数组中的应用:

    给出一个数字,要求打印出每一位数字,不考虑顺序:

    本程序的思路在于将用户输入的数利用循环从个位开始取余然后,将这个数除以10将最高位去掉,依次输出取出的数据。打印的时候数字正好顺序相反。

     while(lenght>0)

             printf("%d ",stack[--lenght]);

    #include <stdio.h>

    int main(int argc, const char * argv[]) {

        int num,stack[100]={};

        int lenght=0;

        

        printf("请输入n=");

        scanf("%d",&num);

       

        while (num>0)

        {

            stack[lenght]=num%10;

            

            printf("%d ",stack[lenght]);

            lenght++;

            num=num/10;

           

        }

            

        //while(lenght>0)

        //     printf("%d ",stack[--lenght]);

       

        return 0;

    }


    利用栈结构的做法,定义一个栈stack[100]={},使用lenght将数字中每次除10取余的数字回收到栈里面。 stack[lenght++]=num%10;

    打印时使用:


     while(lenght>0)

             printf("%d ",stack[--lenght]);



    源代码:

    #include <stdio.h>


    int main(int argc, const char * argv[]) {

        int num,stack[100]={};

        int lenght=0;

        

        printf("请输入n=");

        scanf("%d",&num);

       

        while (num>0)

        {

            stack[lenght]=num%10;

            

           // printf("%d ",stack[lenght]);

            lenght++;

            num=num/10;

           

        }

            

        while(lenght>0)

             printf("%d ",stack[--lenght]);

       

        return 0;

    }






    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    typeof 和 Object.prototype.toString 的区别
    获取地理信息的JavaScript 库 -- YQL Geo
    关于html5手机
    我看过的书的示例网站
    解决跨浏览器问题网站收集
    【docker】docker初试与填坑
    sunJCE or ibmJce,was服务器下使用des的注意点
    cxf-webservice-在was6服务器上运行
    微星b85(b85i b85-gaming) 系列dsdt
    IE10的bug?disabled button如何触发事件
  • 原文地址:https://www.cnblogs.com/wahy/p/4817259.html
Copyright © 2011-2022 走看看