一、观看PPT教程
【01】栈
二、练习题(不清楚回头查看有关PPT)
【01】下面有关栈的定义的描述,如果有错误请改正:
栈是只能在一端进行数据操作的线性数据结构;栈具有先进后出的特点(First In Last Out)。 可以操作数据的一端称为栈底或者 Bottom;对应不开放操作的一端称为栈顶或者 Top。【02】下面是使用静态数组模拟栈及栈的相关操作,请补全缺失的注释:
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
#include<iostream>#include<cmath>using namespace std;int stack[1001]; //int top = 0; ////bool push(int x){ if(top < 1000) // { ++top; // stack[top] = x; // return true; // } return false; //}//int pop(){ if(top != 0) // { int temp = stack[top]; // top--; // return temp; // } return NAN; //返回不是数 }//bool empty(){ return top == 0; //}//int get_top(){ if(!empty()){ // return stack[top]; // } return NAN; //返回不是数 }//int size(){ return top; //}//void print_stack(){ while(!empty()) // { cout << get_top() << " "; // pop(); // } cout << endl;}
int main(){ //测试push int data[] = {3,5,4,2,9,1,10}; for(int i=0; i < 7; i++){ cout << push(data[i]) << " "; } cout << endl; //测试pop cout << pop() << endl; //测试empty cout << empty() << endl; //测试get_top cout << get_top() << endl; //测试size cout << size() << endl; //测试print_stack print_stack(); return 0;}
【03】选择题:
【04】使用【02】定义的函数,完成以下乒乓球取放过程的主函数:直径为一个乒乓球大小的空球筒,只有一端能放入。先将3、6、9号球依次装入球筒;再将 9、6号球拿出;最后依次放入1、2、3号球;打印现在筒内所有球的编号。【05】编程题:单调栈(栈中元素的大小依次递增或递减)。