小白成长撸--顺序栈(C语言版)
Posted Amoshen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小白成长撸--顺序栈(C语言版)相关的知识,希望对你有一定的参考价值。
1 // 顺序栈.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h"//test1.0--栈表仅限Int类型 5 #include <stdio.h> 6 7 #define true 1 8 #define false 0 9 10 typedef struct stack_type 11 { 12 int stack[100];//最大容纳100个元素 13 int top; 14 }stacktype; 15 16 int pushes(stacktype *s, int x);//压入栈 17 int pops(stacktype *s);//删除栈 18 void initiatest(stacktype *s);//初始化 19 20 int main(void) 21 { 22 stacktype L; 23 stacktype *sta = &L;//失败过,如果没有L这个元素,直接stacktype *sta,编译器会报“未初始化的局部变量“sta”” 24 int i, x,m; 25 26 initiatest(sta); 27 28 i = 0; 29 30 for (;;i++) 31 { 32 scanf_s("%d", &x); 33 34 if (x == -2) 35 { 36 break; 37 } 38 39 pushes(sta, x); 40 } 41 42 for (m = 0; m < i; m++) 43 { 44 printf_s("%d ", sta->stack[m]); 45 } 46 47 return 0; 48 } 49 50 int pushes(stacktype *s, int x) 51 { 52 if (s->top >= 99) 53 { 54 return (false); 55 } 56 else 57 { 58 s->top++; 59 s->stack[s->top] = x; 60 return(true); 61 } 62 } 63 64 int pops(stacktype *s) 65 { 66 if (s->top < 0) 67 { 68 return (false); 69 } 70 else 71 { 72 s->top--; 73 return (s->stack[s->top + 1]); 74 } 75 } 76 77 void initiatest(stacktype *s) 78 { 79 s->top = -1; 80 return ; 81 } 82 83 //参考:http://www.cnblogs.com/yuxi/archive/2007/02/10/647076.html 84 //和一些书籍,开始我用的双指针,因为我认为修改指针的内容,就应该在子函数中修改指针的指针,也就是指针的地址,但会出现错误。
以上是关于小白成长撸--顺序栈(C语言版)的主要内容,如果未能解决你的问题,请参考以下文章