C用数组来实现栈管理
来源:互联网 发布:js then的用法 编辑:程序博客网 时间:2024/04/29 21:05
数据栈:
栈是一种先进后出(后进先出)的数据结构,而在C中,栈的使用是无处不在的,很多函数的使用都是基于栈的栈是一种特殊的线性表,只允许在一端进行插入或删除的线性表栈中分类: 栈顶 栈底对栈进行操作: 栈顶指针是控制栈顶元素的 没有数据时:空栈 插入数据时:进栈,入栈,压栈 删除时:出栈,退栈
下面为仅仅用数组实现栈部分的代码:
头文件stack.h
#ifndef __STACK_H__ 2 #define __STACK_H__ 3 4 #define MAX_NUM 100 5 6 int is_empty(); 7 8 int popStack(); 9 10 void pushStack(int element); 11 12 int is_full(); 13 14 int getStackTop(); 15 16 int getStackEnd(); 17 18 #endif
头文件的实现:stack.c
#include"stack.h" int position; int stackElement [MAX_NUM]; int is_empty(){ return position == 0; } int popStack(){ if(is_empty()){ return 0; } int element = stackElement[--position]; return element; } void pushStack(int element){ if(is_full()){ return; } stackElement[position] = element; position = position + 1; } int is_full(){ return position >= MAX_NUM; } int getStackTop(){ return stackElement[position - 1]; } int getStackEnd(){ return stackElement[0]; }
调试段代码:
#include<stdio.h> #include"stack.h" int main(int argc,char * argv[]){ pushStack (0); pushStack (1); pushStack (2); pushStack (3); printf("%d\n",popStack()); printf("%d\n",popStack()); pushStack(6); printf("%d\n",popStack()); pushStack(9); pushStack(14); printf("%d\n",getStackTop()); return 0; }
调试结果为:
3
2
6
14
很简单的一个关于用数组去实现栈的用法,仅仅只是单纯的数组去实现,同时也便于加深我们对于栈的理解
0 0
- C用数组来实现栈管理
- C语言学习:通过数组来实现栈
- C语言实现使用静态数组来构造栈结构
- C语言实现使用动态数组来构造栈结构
- 用URL重写来实现会话管理
- 用数组来实现表(ArrayList)
- 用函数指针数组来实现计算器
- c语言 学生管理系统(数组实现)
- C语言基础 - 实现动态数组并增加内存管理
- 图书管理系统c语言 结构体数组实现
- 栈的C数组实现
- 编程实现一个栈结构,用数组来实现,具有入栈、出栈操作。
- 用C的?:来实现折半查找
- 用c语言来实现井字棋
- 100 事件 [~IE8] 用数组来保存传统事件 通过数组来实现按顺序执行
- 栈数组实现实现文件C语言
- 用数组实现队列(C实现)
- c语言:用数组来处理求Fibonacci数列问题
- 每日一结,MySQL数据库
- JS插件库的封装[AMD][CMD]相关概念
- 总结大三上学期的生活
- 常用类之字符串String方法
- 暮拾晨花,回望流年——我的2016
- C用数组来实现栈管理
- Maven最佳实践:版本管理 SNAPSHOT
- Two Sum
- Unity3d PureMVC框架
- Django issuperset 和 issubset 使用
- JPA 菜鸟教程 16 继承-联合子类-JOINED
- MatConvnet工具箱文档翻译理解三
- oracle存储过程
- LeetCode 2016 400,398,397,396,393,352,284