#include<iostream.h>
const int MAX=5; //假定栈中最多保存5个数据
//定义名为stack的类,其具有栈功能
class stack {
//数据成员
float num[MAX]; //存放栈数据的数组
int top; //指示栈顶位置的变量
public:
//成员函数
void init(void) { top=0; } //初始化函数
void push(float x) //入栈函数
{
if (top==MAX){
cout<<"Stack is full !"<<endl;
return;
};
num[top]=x;
top++;
}
float pop(void) //出栈函数
{
top--;
if (top<0){
cout<<"Stack is underflow !"<<endl;
return 0;
};
return num[top];
}
}
//以下是main()函数,其用stack类创建栈对象,并使用了这些对象
main(void)
{
//声明变量和对象
int i;
float x;
stack a,b; //声明(创建)栈对象
//以下对栈对象初始化
a.init();
b.init();
//以下利用循环和push()成员函数将2,4,6,8,10依次入a栈对象
for (i=1; i<=MAX; i++)
a.push(2*i);
//以下利用循环和pop()成员函数依次弹出a栈中的数据并显示
for (i=1; i<=MAX; i++)
cout<<a.pop()<<" ";
cout<<endl;
//以下利用循环和push()成员函数将键盘输入的数据依次入b栈
cout<<"Please input five numbers."<<endl;
for (i=1; i<=MAX; i++) {
cin>>x;
b.push(x);
}
//以下利用循环和pop()成员函数依次弹出b栈中的数据并显示
for (i=1; i<=MAX; i++)
cout<<b.pop()<<" ";
}
文献来源:
UNDONER(小杰博客) :http://blog.csdn.net/undoner
LSOFT.CN(琅软中国) :http://www.lsoft.cn
分享到:
相关推荐
数据结构栈的c语言实现实例程序,供大家学习用。 关于栈的抽象数据类型,初始化,入栈,出栈,清空栈等操作!
栈 (stack) 是限定仅在表尾进行插入或删除操作的线性表。对栈来说,表尾端有其特殊含义,称为栈顶 (top), 表头端称为栈底 (bottom)。不含元素的空表称为空栈。...链栈有着初始化、入栈、出栈、去栈顶元素等操作。
实现基于顺序表的顺序栈(数据结构定义+基本运算) 设计算法判断一个算术表达式的圆括号是否正确配对。 第一个式子: 1*(2+3*(4*(2-1)*(3+x)+5)-6) 能够正确匹配 第二个式子: 1*(2+3*4*(2-1)*(3+x)+5)-6) 不...
通过该题目的设计过程,可以加深理解线性表及栈的逻辑结构、存储结构,掌握线性表及栈上基本运算的实现,进一步理解和熟练掌握课本中所学的各种数据结构,学会如何把学到的知识用于解决实际问题,培养学生的动手能力...
Python 堆栈 堆栈是一个后进先出(LIFO)...stack = [] # 初始化一个列表数据类型对象, 作为一个栈 def pushit(): # 定义一个入栈方法 stack.append(raw_input('Enter New String: ').strip()) # 提示输入一个入栈的 S
数据结构中栈的运用方法,有入栈,出栈,初始化栈,删除栈顶元素,依次输出栈元素,以及链式栈的同样操作。
在计算机编程中,栈(Stack)是一种重要的数据结构,它遵循后进先出(Last In First Out, LIFO)的原则。顺序栈是栈的一种实现方式,它使用数组来存储数据,并提供了一系列操作栈的函数,如入栈(push)、出栈(pop...
栈是一种先进后出(LIFO)的数据结构,栈的一个最重要的特征就是只能在栈顶进行入栈和出栈操作。今天我们来讲一下最简单的栈的实现,静态栈的实现,可以把它看作是一个数组,但是这个数组我们只能在它的末尾进行插入和...
数据结构和算法的一点实现 一、Stack 篇 1.实现最基本的 push pop 操作。 2. 用链表实现,数据结构为 count(统计个... //堆栈的基本结构 void StackInit(pStack &S) //堆栈初始化 { S=new Stack; S->data=0; S->next=NU
数据结构及算法C语言版。严蔚敏版。VC6运行通过,这个是源代码CPP文件,包含顺序线性表、单链表的插入、删除、查找。包含监视哨查找,折半查找,直接插入排序,希尔排序,冒泡排序,快速排序,选择排序。里面包含超...
//栈的初始化 int InitStack(SqStack *s) { Elemtype *p; p=s->stack; p=(Elemtype *)malloc(MAXNUM*sizeof(Elemtype)); if(!p) return 0; s->top=-1; return 1; } //入栈 int push(SqStack *s,Elemtype x) { ...
熟悉栈的特点(先进后出)及栈的基本操作,如入栈、出栈等,掌握栈的基本操作在 栈的顺序存储结构和链式存储结构上的实现; 2. 熟悉队列的特点(先进先出)及队列的基本操作,如入队、出队等,掌握队列的基本 操作...
Status Init_Stack(BDStacktype &tws,int m)//初始化一个大小为m的双向栈tws { tws.base[0]=(Elemtype*)malloc(sizeof(Elemtype)); tws.base[1]=tws.base[0]+m; tws.top[0]=tws.base[0]; tws.top[1]=tws.base[1]...
栈:在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存的区域。这句话的意思是栈顶的地址和栈的最大容量是系统预先规定好的,在 WINDOWS下,栈的大小是2M(也有的说是1M,总之是一个编译时就确定的常数),...
//=============初始化栈============== Status InitStask(SqStack *S) { S->base=(SElemtype *)malloc(sizeof(SElemtype)); if(!S->base) return ERROR; S->top=S->base; S->stacksize=0; return OK; } //==...
"栈"的定义可知,每一次入栈的元素都在原栈顶元素之上成为新的元素,每一次出栈的 元素总是当前栈顶元素使次栈元素成为新的栈顶元素,即最后进栈者先出栈。程序中采 用的结构是: typedef struct NODE{ CarNode *...
#The activity lifecycle(活动的生命周期)##返回栈 Back Stack栈是一种后进先出的数据结构,在默认情况 下,每当我们启动了一个新的活动,它会在返回栈中入栈,并处于栈顶的位置。而每当我们 按下 Back 键或调用 finish...
本教程共分为5个部分,第一部分是C语言提高部分,第二部分为C++基础部分,第三部分为C++进阶部分,第四部分为C、C++及数据结构基础部分,第五部分为C_C++与设计模式基础,内容非常详细. 第一部分 C语言提高部分目录...