线性堆栈
来源:互联网 发布:淘宝卖家中心手机版下载 编辑:程序博客网 时间:2024/06/05 00:07
#include <stdio.h>
#include <stdlib.h>
#define MAXSZ 100 //最大容量
#define NO_SENSE_DATA ' ' //没有意义的数据,用于初始化
typedef char data_type; /定义数据类型
typedef struct
{
data_type space[MAXSZ];
int top;
}STACK;
{
if(stack_var!=NULL)
{
for(stack_var->top=MAXSZ-1;(stack_var->top)>=0;(stack_var->top)--)
{
stack_var->space[stack_var->top]=NO_SENSE_DATA;
}
}
else
{
printf("Error---- from StackInit\n");
}
}
{
if(stack_var->top<MAXSZ-1)
stack_var->space[++(stack_var->top)]=menber;
}
{
if(stack_var->top>=0)
return stack_var->space[(stack_var->top)--];
return NO_SENSE_DATA;
}
int main()
{
data_type mes;
STACK stack;
StackInit(&stack);
while((mes=getchar())!=0x0a) //以回车结束输入
push(&stack,mes);
while((mes=pop(&stack))!=NO_SENSE_DATA)
printf("%c\n",mes);
return 0;
#include <stdlib.h>
#define MAXSZ 100 //最大容量
#define NO_SENSE_DATA ' ' //没有意义的数据,用于初始化
typedef char data_type; /定义数据类型
typedef struct
{
data_type space[MAXSZ];
int top;
}STACK;
/*****************************************************************************************
*
* 堆栈初始化
* 给每个存储单元赋一个没有意义的数据
*
*****************************************************************************************/
void StackInit(STACK* stack_var){
if(stack_var!=NULL)
{
for(stack_var->top=MAXSZ-1;(stack_var->top)>=0;(stack_var->top)--)
{
stack_var->space[stack_var->top]=NO_SENSE_DATA;
}
}
else
{
printf("Error---- from StackInit\n");
}
}
/**********************************************************************
*
* 压栈
*
**********************************************************************/
void push(STACK* stack_var,data_type menber){
if(stack_var->top<MAXSZ-1)
stack_var->space[++(stack_var->top)]=menber;
}
/**********************************************************************
*
* 弹栈
*
**********************************************************************/
data_type pop(STACK* stack_var){
if(stack_var->top>=0)
return stack_var->space[(stack_var->top)--];
return NO_SENSE_DATA;
}
int main()
{
data_type mes;
STACK stack;
StackInit(&stack);
while((mes=getchar())!=0x0a) //以回车结束输入
push(&stack,mes);
while((mes=pop(&stack))!=NO_SENSE_DATA)
printf("%c\n",mes);
return 0;
}
运行结果:
0 0
- 线性堆栈
- 线性堆栈
- (七)线性堆栈
- 【数据结构】线性堆栈
- 数据结构-线性结构-堆栈
- 线性结构---堆栈
- 线性表、堆栈以及队列
- 数据结构-线性表之堆栈
- 一步一步写算法(之线性堆栈)
- 线性表、堆栈、队列的实现总结
- 一步一步写算法(之线性堆栈)
- 线性表 堆栈 队列 树和堆
- 堆栈-线性存储(出栈和入栈操作)
- 重新教自己学算法之线性堆栈(八)
- 多态实现线性表(队列,串,堆栈)
- 数组、链表、堆栈和队列、线性表和顺序表
- 多态实现线性表(队列、串、堆栈)
- (二)数据结构之线性表的简单实现:堆栈
- ARM hardfault分析
- GLIBCXX_3.4.9' not found - 解决办法
- 好的兽药产品最后却卖得不好呢-中国兽药网www.shouyao.cn解读
- 欢迎大家指导(表达式求值)
- Deployment Target和Base SDK
- 线性堆栈
- 更改navigationController push和pop界面切换动画
- iOS开发UITableView基本使用方法总结
- 工作分配
- 星号(*)的用法大全总结
- CSS中Position 的用法:
- HDU 2616 Kill the monster (暴力搜索 || 终极暴力全排列)
- Linux服务器之定时器
- 关于db_block_gets概念与相关实验