数据结构之数组实现栈结构
2011-11-30 10:51
295 查看
#include <stdio.h> #include <stdlib.h> int *top(int *S)//返回栈顶位置 { return &S[0]; } int Stack_Empty(int *S)//判断栈是否为空 { if(*top(S)==0)//栈顶=0,则栈为空 return 1; return 0; } int Stack_Full(int *S)//判断栈是否已满 { if(*top(S)==10) return 1; return 0; } void Push(int *S,int x) { if(Stack_Full(S))//如果已满 printf("栈已经满了,不能压入新的元素!\n"); else { (*top(S))++;//将栈顶位置+1,并压入新的元素 S[*top(S)]=x; } } int Pop(int *S) { int x=-100; if(Stack_Empty(S)) printf("栈已空,没有元素可以出栈!\n"); else { x=S[*top(S)];//得到栈顶元素,并将位置-1 (*top(S))--; } return x; } int main(int argc, char *argv[]) { int i,x; int S[11]={0};//存放栈,其中S[0]为栈顶位置 int length=10;//存放栈的长度,暂时默认为10 printf("出栈的元素为:%d\n",Pop(S)); for(i=0;i<11;i++) { printf("请输入要压入的元素:"); scanf("%d",&x); Push(S,x); } for(i=0;i<5;i++) printf("出栈的元素为:%d\n",Pop(S)); system("PAUSE"); return 0; }
相关文章推荐
- 数据结构一(栈-数组实现)
- 数据结构——用数组实现的栈的基础功能
- 数据结构线性存储之连续存储数组的实现
- 【数据结构与算法】数组应用1:矩阵乘法(Java实现)
- 数组的顺序存储表示和实现-数据结构
- C++ 数据结构线性表-数组实现
- 数据结构示例之顺序数组的实现
- 数据结构之栈的数组实现
- 【数据结构与算法】(一) c 语言实现数组的简单操作
- (3)数据结构——栈(数组)实现
- [数据结构与算法] : 栈的数组实现
- 数据结构图文解析之:数组、单链表、双链表介绍及C++模板实现
- VB.NET用Marshal.PtrToStructure 方法实现数据在数组和结构间复制
- 【数据结构之线性表顺序存储】简单的数组的方式实现
- 看数据结构写代码(19) 数组的实现
- 数据结构之顺序表(数组实现与链表实现)
- 数据结构之用数组和链表实现队列
- (7)数据结构——循环队列(数组)实现
- 数据结构之stack,queue的数组与链表实现
- 【数据结构与算法】数组应用2:矩阵转置(Java实现)