简单的栈的练习---用堆栈实现倒序打印
堆栈与数组不同之处在于,数组可以按下标随机访问,这次访问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;
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;
OK!
2009-7-5 11:59
作者:
fandyst
出处: http://www.cnblogs.com/todototry/
关注语言: python、javascript(node.js)、objective-C、java、R、C++
兴趣点: 互联网、大数据技术、大数据IO瓶颈、col-oriented DB、Key-Value DB、数据挖掘、模式识别、deep learning、开发与成本管理
产品:
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
出处: http://www.cnblogs.com/todototry/
关注语言: python、javascript(node.js)、objective-C、java、R、C++
兴趣点: 互联网、大数据技术、大数据IO瓶颈、col-oriented DB、Key-Value DB、数据挖掘、模式识别、deep learning、开发与成本管理
产品:
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。