简单数据结构---数组实现栈
2016-04-22 09:07
302 查看
/* * File name : LinkList.cpp * Function : 数组栈的C++实现 * Created on : 2016年4月20日 * Author : beijiwei@qq.com * Copyright : 欢迎大家和我一起交流学习,转载请保持源文件的完整性。 任何单位和个人不经本人允许不得用于商业用途 */ #include <cstdio> #include <iostream> using namespace std; #define MAX 10 typedef struct Astack { int data[MAX]; int top; }Astack; void stack_init(Astack & S); void stack_clear(Astack & S); bool stack_is_empty(Astack & S); bool stack_get_top(Astack & S, int & elem); bool stack_push(Astack & S, int elem); bool stack_pop(Astack & S, int &elem); int stack_get_length(Astack & S); int main(int argc, char** argv) { Astack as; stack_init(as); cout << "Stack is empty ? " << stack_is_empty(as) << endl; stack_push(as, 10); stack_push(as, 11); stack_push(as, 12); stack_push(as, 13); cout << "Stack is empty ? " << stack_is_empty(as) << endl; cout << "The length of Stack as is : " << stack_get_length(as) << endl; int elem; stack_pop(as, elem); cout << "pop elem is : " << elem << endl; stack_pop(as, elem); cout << "pop elem is : " << elem << endl; stack_pop(as, elem); cout << "pop elem is : " << elem << endl; stack_pop(as, elem); cout << "pop elem is : " << elem << endl; stack_pop(as, elem); return 0; } void stack_init(Astack & S) { S.top = -1; } void stack_clear(Astack & S) { S.top =-1; } bool stack_is_empty(Astack & S) { return (S.top == -1) ? true : false; } bool stack_get_top(Astack & S, int & elem) { if (S.top == -1) return false; elem = S.data[S.top]; return true; } bool stack_push(Astack & S, int elem) { if (S.top == MAX - 1) { cout << "Stack is full, can not push !" << endl; return false; } S.data[++S.top] = elem; return true; } bool stack_pop(Astack & S, int &elem) { if (S.top == -1) { cout << "Stack is empty, can not pop !" << endl; return false; } elem = S.data[S.top--]; return true; } int stack_get_length(Astack & S) { return S.top+1; }
相关文章推荐
- 数据结构与算法--查找与排序(二)
- 数据结构与算法--查找与排序(一)
- 数据结构与算法--二叉树(二)
- 数据结构与算法--二叉树(一)
- 数据结构与算法--链表C++实现
- 数据结构与算法--线性表
- 数据结构与算法--顺序表
- 图的数据结构实现
- [数据结构]链表操作
- linux内存管理之数据结构
- 数据结构简单调试
- 数据结构之物流信息的归并排序(非递归实现)
- 数据结构---二叉树
- 数据结构之二叉树 (构造 拷贝构造 以及前序中序后续三种遍历方法)
- 大话数据结构读书笔记系列(六)树<上篇>
- 数据结构求一个矩阵的马鞍点
- 【数据结构】堆栈、队列的原理及java实现
- Android JNI 使用的数据结构JNINativeMethod详解
- 数据结构-树状数组讲解
- 简单数据结构--链表