利用数组实现栈的一些操作
2014-08-31 16:49
302 查看
//Filename:StackArray.cpp //Writed by CaoLichen //本程序利用数组实现栈的各种操作 #include<stdio.h> #include<stdlib.h> #define MaxSize 100 //数组上限 //定义顺序栈类型 typedef struct { int data[MaxSize]; // int top; //栈顶指针 }SArray; //初始化 SArray * InitStack(SArray *s) { s = (SArray *)malloc(sizeof(SArray)); s->top = -1; //栈顶指针初始化为-1 return s; //返回栈地址 } //进栈 void Push(SArray *s, int data) { if(s->top == MaxSize-1){ printf("栈溢出,进栈失败\n"); return; } s->top ++; s->data[s->top] = data; printf("进栈成功!\n"); } //出栈 void Pop(SArray *s) { if(s->top == -1){ printf("栈为空,出栈失败"); return ; } s->top --; printf("出栈成功\n"); } //打印栈 void PrintStack(SArray *s) { int num = s->top; for(; num > -1; num --){ printf("%d ",s->data[num]); } printf("\n打印栈成功!\n"); } //销毁栈 void ClearStack(SArray *s) { free(s); } //求栈的长度 int LengthStack(SArray *s) { return(s->top + 1); } int main() { SArray *s; s = NULL; s = InitStack(s); //初始化 int i; for(i = 0; i < 20; i ++){ Push(s,i); PrintStack(s); } for(i = 0; i < 20; i ++){ Pop(s); PrintStack(s); } ClearStack(s); return 0; }
相关文章推荐
- 利用数组操作实现灰度图像的上下左右翻转(C++&opencv)
- 利用可变数组实现简单通讯录操作
- 利用数组操作实现灰度图像放大两倍(C++&opencv)
- 链表的可变数组的实现和一些基本操作
- linux下使用vim实现基于静态数组的顺序表的一些基本操作
- 利用C语言实现一些简单的栈操作
- C语言数组实现栈的基本操作,并利用O(1)求出栈中最小元素
- 数组的实现和一些基本操作
- 【学习笔记四】- 用js实现的一些数组操作和算法
- 数据结构与算法:动态数组(利用万能指针实现任意类型数组操作)
- 剑指offer中一些有关数组和字符串操作的代码实现和扩充
- Java与JavaScript 完美实现字符串拆分(利用数组存储)与合并的互逆操作
- 数据结构:请用一个数组实现两个堆栈,要求最大地利用数组空间,使 数组只要有空间入栈操作就可以成功
- SQL利用CMD以及IIS命令APPCMD 实现一些IIS操作
- 关于arrylist的一些操作(包含利用params传递数组参数)
- 利用数组实现队列操作
- 利用并发操作实现可伸缩性
- 利用反射和自定义特性实现基本数据存取操作自动获取
- asp利用数组实现阶乘计算(大数相乘)
- 利用TDC组件实现对WEB页面的交互操作