先进后出堆(C)
来源:互联网 发布:php 三级分销系统源码 编辑:程序博客网 时间:2024/04/29 22:00
#include<stdio.h>
#include<stdbool.h>
#include <stdlib.h>
#include <string.h>
#define S_SIZE 10//定义堆的大小
#define print(x) printf("%5d",x)//定义打印宏函数
typedef struct
{ int top;
} count;
count S;// 记录下一个堆元素位置
bool is_empty(count );
void push(int * ,int );
int pop(int *);
int main(void)
{ int x;
char *ch;
S.top=0;//初始化堆
int *arr=malloc(S_SIZE*sizeof(int));
puts("push element(enter q to quit)");
while(scanf("%d",&x)==1 && S.top<S_SIZE )
push(arr,x);
//打印堆中元素
for(int i=0;i<S.top;i++)
{ print(arr[i]);
putchar('\n');
}
printf("pop element");
puts("(please enter Y \n");
while(getchar()!='\n')
continue;
//弹出堆中元素
while(!strcmp("Y",gets(ch)))
printf("pop:%d\n",pop(arr));
}
//函数 检查堆是否为空
bool is_empty(count S)
{ if(S.top<0)
return true;
else
return false;
}
//函数 压入元素
void push(int * arr,int x)
{
arr[S.top]=x;
S.top++;
}
//函数 弹出元素
int pop(int *arr)
{ S.top--;
if(is_empty(S))
{ printf("StackUnderflow\n");
exit(EXIT_FAILURE);
}
return arr[S.top];
}
- 先进后出堆(C)
- 先进的C + +编程风格
- 栈(先进后出)
- 为什么Lisp语言如此先进?(译文)
- linux 线程(FIFO)先进先出
- 为什么Lisp语言如此先进?(译文)
- 为什么Lisp语言如此先进?(译文)
- 先进的框架Spring(3)
- 先进的框架Spring(4)
- 先进的框架Spring(5)
- 为什么Lisp语言如此先进?(译文)
- 为什么Lisp语言如此先进?(译文)
- 为什么Lisp语言如此先进?(译文)
- (转)为什么LISP语言如此先进?
- 队列(FIFO)先进先出
- 先进先出页面置换算法c语言源码
- 单向链表的创建与遍历(先进先出和先进后出)
- 进销存先进先出(选自邹建的blog)
- 坟头小诗
- bzoj 4385 poi2015
- Linux写时拷贝技术(copy-on-write)
- 异常,文件,I/O流知识小结
- js中会改变作用域的两个语句
- 先进后出堆(C)
- C/C++ 模拟通讯录
- 小球问题
- hdu 1175 连连看 bfs+转弯
- 我的第一款iOS对战游戏:你选我猜
- VS C++ 初学者日记(1) 如何使程序运行完成后保留cmd屏幕
- Qt5.6.1+mingw32+opencv3.0使用成功
- 微信小程序开发之选项卡(窗口顶部TabBar)页面切换
- 初级C语言算法实现分解质因数