堆栈的操作
来源:互联网 发布:西门子编程电缆多少钱 编辑:程序博客网 时间:2024/06/05 11:59
/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co., Ltd.
File name:
Author:Jerey_Jobs Version:0.1 Date:
Description:
Funcion List:
*****************************************************/
copyright (C), 2014-2015, Lighting Studio. Co., Ltd.
File name:
Author:Jerey_Jobs Version:0.1 Date:
Description:
Funcion List:
*****************************************************/
#include <stdio.h>
#include <stdlib.h>
#define MAX 10
#include <stdlib.h>
#define MAX 10
struct stack
{
int stack[MAX];
int top;
};
{
int stack[MAX];
int top;
};
enum return_result
{
FULL_OK,
FULL_NO,
PUSH_OK,
PUSH_NO,
EMPTY_OK,
EMPTY_NO,
POP_NO = 0xefffffff
};
{
FULL_OK,
FULL_NO,
PUSH_OK,
PUSH_NO,
EMPTY_OK,
EMPTY_NO,
POP_NO = 0xefffffff
};
typedef struct stack Stack;
void create_stack(Stack **stack);
void init_stack(Stack **stack);
int push_stack(Stack **stack,int num);
int is_full(Stack **stack);
int pop_stack(Stack **stack);
int is_empty(Stack **stack);
void init_stack(Stack **stack);
int push_stack(Stack **stack,int num);
int is_full(Stack **stack);
int pop_stack(Stack **stack);
int is_empty(Stack **stack);
int main()
{
Stack *stack;
int i,loc;
{
Stack *stack;
int i,loc;
create_stack(&stack);
init_stack(&stack);
for(i = 0;i < MAX;i++)
{
if(push_stack(&stack,i+1) == PUSH_OK)
{
printf("push ok!\n");
}
}
for(i = 0;i < 10;i++)
{
loc = pop_stack(&stack);
if(loc == POP_NO)
{
break;
}
printf("stack[%d] = %d \n",i,loc);
}
return 0;
}
{
if(push_stack(&stack,i+1) == PUSH_OK)
{
printf("push ok!\n");
}
}
for(i = 0;i < 10;i++)
{
loc = pop_stack(&stack);
if(loc == POP_NO)
{
break;
}
printf("stack[%d] = %d \n",i,loc);
}
return 0;
}
void create_stack(Stack **stack)
{
*stack = (Stack *)malloc(sizeof(Stack));
if(*stack == NULL)
{
printf("malloc error !\n");
exit(-1);
}
}
{
*stack = (Stack *)malloc(sizeof(Stack));
if(*stack == NULL)
{
printf("malloc error !\n");
exit(-1);
}
}
void init_stack(Stack **stack)
{
(*stack)->top = -1;
}
{
(*stack)->top = -1;
}
int push_stack(Stack **stack,int num)
{
if(is_full(stack) == FULL_OK)
{
printf("stack is full !\n");
return PUSH_NO;
}
else
{
((*stack)->top)++;
((*stack)->stack[((*stack)->top)]) = num;
return PUSH_OK;
}
}
{
if(is_full(stack) == FULL_OK)
{
printf("stack is full !\n");
return PUSH_NO;
}
else
{
((*stack)->top)++;
((*stack)->stack[((*stack)->top)]) = num;
return PUSH_OK;
}
}
int is_full(Stack **stack)
{
if((*stack)->top == MAX)
{
return FULL_OK;
}
else
{
return FULL_NO;
}
}
{
if((*stack)->top == MAX)
{
return FULL_OK;
}
else
{
return FULL_NO;
}
}
int pop_stack(Stack **stack)
{
if(is_empty(stack) == EMPTY_OK)
{
return POP_NO;
}
else
{
return ((*stack)->stack[((*stack)->top)--]);
}
{
if(is_empty(stack) == EMPTY_OK)
{
return POP_NO;
}
else
{
return ((*stack)->stack[((*stack)->top)--]);
}
}
int is_empty(Stack **stack)
{
if((*stack)->top == -1)
{
return EMPTY_OK;
}
else
{
return EMPTY_NO;
}
}
{
if((*stack)->top == -1)
{
return EMPTY_OK;
}
else
{
return EMPTY_NO;
}
}
0 0
- 堆栈的操作
- 堆栈的相关操作
- 堆栈的操作
- 堆栈的基本操作
- 堆栈的部分基本操作
- 任务切换的堆栈操作
- 堆栈的push, pop操作...
- 递归函数的堆栈操作
- 堆栈操作
- 堆栈操作
- x86函数调用堆栈的操作
- C++写的堆栈Stack操作函数
- 顺序表堆栈的操作实现源码
- x86函数调用堆栈的操作
- 矩阵堆栈的操作、组合变换
- 堆栈的链式建立和操作
- 堆栈的基本操作(用链表实现)
- x86函数调用堆栈的操作
- Java集合的小抄,Java初学者必备
- this、super对照
- jQuery轻量级弹窗
- 写一句中文放入文件
- 批量删除(spring mvc )
- 堆栈的操作
- 蓝桥杯单片机学习1
- 方法重写、方法重载
- flask重置密码功能的实现
- 413. Arithmetic Slices
- Lightoj1018 【状压DP】
- python中lambda函数
- Unix目录结构的来历
- 显示盘符下所有文件名