#include <stdio.h>
#include <tchar.h>
#include <stdlib.h> #define StackSize 5
#define IncrementSize 5
// TODO: 在此处引用程序需要的其他头文件
struct Stack
{
int *base;
int *top;
int stacksize;
};
//初始化栈
bool Init_Stack(Stack* s){
s->base = (int*)malloc(StackSize*sizeof(int));
if (s->base == NULL) return false;
s->top = s->base;
s->stacksize = StackSize;
return true;
}
//销毁栈
bool Destroy_Stack(Stack* s){
free(s->base);
s->base = NULL;
s->top = NULL;
s->stacksize = ;
return true;
}
//清空栈
bool Clear_Stack(Stack* s){
s->top = s->base;
return true;
}
//插入元素
bool Push(Stack* s, int value){
if (s->top - s->base >= s->stacksize){
s->base = (int*)realloc(s->base, (StackSize + IncrementSize)*sizeof(int));
s->top = s->base + s->stacksize;//重置一下栈顶,感觉也没多大必要呀
s->stacksize += IncrementSize;
}
*++s->top = value;//栈顶指向栈顶元素
s->stacksize++;
return true;
}
//弹出元素
int Pop(Stack* s){
if (s->top == s->base) return false;
int p = *s->top--;
s->stacksize--;
return p;
}
//逆序打印
void Print_Stack(Stack s){
if (s.top == s.base) printf("此栈为空\n");
while (s.top!=s.base){
printf("%d->", Pop(&s));
}
printf("\n");
}
//正序打印
void Stack_Traverse(Stack s){
if (s.top == s.base) printf("此栈为空\n");
while (s.top != s.base){
printf("%d->", *++s.base);
}
printf("\n");
}

最新文章

  1. sqlserver 游标
  2. 页面无法加载main.css
  3. C/C++源代码到可执行程序的过程详解
  4. https的工作流程
  5. 作为平台的Windows PowerShell(二)
  6. 介绍一些实用的IOS手势识别库 (COCOS2D)
  7. 【转】JavaScript闭包
  8. php缓存生成及更新实现参考哦
  9. node to traverse cannot be null!
  10. Java程序员应该知道的10个Eclipse调试技巧
  11. JTAG应该如何接线
  12. Linux系统操作指令汇总
  13. Jquery笔记之第二天
  14. 在ROS(indigo)中读取手机GPS用于机器人定位~GPS2BT在ubuntu和window系统下的使用方法~
  15. 【编程练习】快速select算法的实现
  16. ./configure、make、make install
  17. 使用二进制安装包的方式单机部署MySQL8.0.13
  18. Linux:进程实例信息(/proc)
  19. Python有趣现象(不定时更新)
  20. Hadoop生态圈-Kafka的完全分布式部署

热门文章

  1. Jenkins构建部署jar/war后,服务无法在后台持续运行的解决方案
  2. Easy AR官方实例HelloARVideo无法播放视频,视频黑屏,只有声音----解决办法
  3. .NET Core CSharp初级篇 1-1
  4. Bzoj 3874: [Ahoi2014&amp;Jsoi2014]宅男计划 三分+贪心
  5. Linux关闭进程。
  6. 深入理解Java虚拟机二 阅读笔记
  7. CSingleLock
  8. 从似然函数到EM算法(附代码实现)
  9. [vue折线图] 记录SpringBoot+Vue3.0折线图订单信息展示
  10. 《HTML总结》