zoukankan      html  css  js  c++  java
  • 简单的栈的练习用堆栈实现倒序打印

          堆栈与数组不同之处在于,数组可以按下标随机访问,这次访问a[5]下次可以访问a[1],但是堆栈的访问规则被限制为Push和Pop两种操作,Push(入栈或压栈)向栈顶添加元素,Pop(出栈或弹出)则取出当前栈顶的元素,也就是说,只能访问栈顶元素而不能访问栈中其它元素。如果所有元素的类型相同,堆栈的存储也可以用数组来实现,访问操作可以通过函数接口提供。

     1 
     2 
     3 char stack[26];
     4 /* = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}*/
     5 
     6 int top = 0 ;
     7 
     8 bool Push(char t)
     9 {
    10     if(top < sizeof(stack)/sizeof(char))
    11     {
    12         stack[top] = t;
    13         top++;
    14         return true;
    15     }
    16     printf("\n%d\n",top);
    17     return false;
    18 }
    19 
    20 char Pop()
    21 {
    22     if( top > 0 && top <= sizeof(stack)/sizeof(char+ 1 )
    23     {
    24         char tmp = stack[--top];
    25         printf("\n%c\n",tmp);
    26         return tmp;
    27     }
    28     else
    29     {
    30         return  NULL;
    31     }
    32 }
    33 
    34 int main(int argc, _TCHAR* argv[])
    35 {
    36     int i = 97/*依稀记得 a 的 Ascii编码值为 97.*/
    37     
    38     while(Push((char)i++));
    39 /*上一句相当于    stack[26]='a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}*/    
    40 
    41     while(Pop());
    42 
    43     getchar();
    44 
    45     return 0;

    46 }      

          OK!


                                                                            2009-7-5  11:59
  • 相关阅读:
    函数如何命名
    jsp/servlet
    hibernate主键生成策略
    Java项目经验(ssh)
    jvm的内存区划分
    @Override
    Java成长简介(转载)
    接口 转载
    SpringBoot项目jar、war方式的部署
    服务注册与发现及其优雅停服
  • 原文地址:https://www.cnblogs.com/ToDoToTry/p/1517376.html
Copyright © 2011-2022 走看看