博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3.栈的实现
阅读量:5322 次
发布时间:2019-06-14

本文共 1991 字,大约阅读时间需要 6 分钟。

1.stack.h

1 #include 
2 #include
3 4 #define N 100 5 6 struct stack 7 { 8 int data[N]; 9 int top;//标识栈顶10 };11 12 typedef struct stack Stack;//stack别名13 14 void init(Stack *p);//初始化15 int isempty(Stack *p);//判断栈是否空16 int isfull(Stack *p);//判断栈溢出17 int gettop(Stack *p);//获取栈顶18 void push(Stack *p, int key);//插入数据19 void pop(Stack *p);//弹出一个数据20 void show(Stack *p);//显示出来

2.stack.c

1 #include "stack.h" 2  3 void init(Stack *p) 4 { 5     p->top = -1;//代表为空 6     memset(p->data, 0, sizeof(int)*N);//数据清零 7 } 8  9 int isempty(Stack *p)10 {11     if (p->top == -1)12     {13         return 1;//1为空14     }15     else16     {17         return 0;//0不为空18     }19 }20 21 int isfull(Stack *p)22 {23     if (p->top == N - 1)24     {25         return 1;//溢出26     }27     else28     {29         return 0;//没满30     }31 }32 33 int gettop(Stack *p)34 {35     return p->data[p->top];//获取栈顶36 }37 38 void push(Stack *p, int key)39 {40     if (isfull(p) == 1)41     {42         return;43     }44     else45     {46         p->top += 1;47         p->data[p->top] = key;48     }49 }50 51 52 void pop(Stack *p)53 {54     if (isempty(p) == 1)55     {56         return;57     }58     else59     {60         p->top -= 1;61     }62 }63 64 void show(Stack *p)65 {66     if (isempty(p) == 1)67     {68         return;69     }70     else71     {72         printf("\n栈的数据是:\n");73         for (int i = 0; i <= p->top; i++)74         {75             printf("%4d", p->data[i]);//打印栈的数据76         }77         printf("\n");78     }79 }

main.c

1 #include "stack.h" 2  3 void main() 4 { 5     int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }; 6  7     Stack mystack; 8  9     init(&mystack);10     11     for (int i = 0; i < 10; i++)12     {13         push(&mystack, a[i]);14     }15     while (!isempty(&mystack))16     {17         printf("%d", gettop(&mystack));18         pop(&mystack);19     }20 21     system("pause");22 }

 

转载于:https://www.cnblogs.com/xiaochi/p/8282581.html

你可能感兴趣的文章
spring-使用MyEcilpse创建demo
查看>>
DCDC(4.5V to 23V -3.3V)
查看>>
kettle导数到user_用于left join_20160928
查看>>
activity 保存数据
查看>>
typescript深copy和浅copy
查看>>
linux下的静态库与动态库详解
查看>>
hbuilder调底层运用,多张图片上传
查看>>
深入理解基于selenium的二次开发
查看>>
较快的maven的settings.xml文件
查看>>
Git之初体验 持续更新
查看>>
Exception in thread "AWT-EventQueue-0" java.lang.IllegalThreadStateException
查看>>
随手练——HDU 5015 矩阵快速幂
查看>>
启动redis一闪就关
查看>>
Maven之setting.xml配置文件详解
查看>>
ASP.NET 4.5 Web Forms and Visual Studio vs2013年入门1
查看>>
SDK目录结构
查看>>
malloc() & free()
查看>>
HDU 2063 过山车
查看>>
高精度1--加法
查看>>
String比较
查看>>