【问题描述】
设一个顺序栈,进行出栈和入栈操作。
【输入形式】
输入若干个整数(不超过1000),依次入栈;(提示:scanf("%d",&e)==1来作为输入判断)
【输出形式】
依次出栈并输出元素值,以空格分隔。
【样例输入】
23 45 67 14 -9 20 100 89 45 30
【样例输出】
30 45 89 100 20 -9 14 67 45 23
栈的定义:
栈是限定只能在表的一端(表尾)进行插入和删除操作的线性表。
先进后出是栈的特性:
顺序栈的表示和实现:
顺序栈就是用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素。同时,为了指示当前的栈顶元素位置,需要另设一个指针变量top,称为栈顶指针,通常栈顶指针指向栈中下一个入栈位置,当栈顶指针指向第一个存储单元时表示空栈。
栈的基本操作如图所示:
用动态分配的顺序存储结构进行描述的基本操作: