实验二栈、队列的实现及应用实验课程名 :数据结构与算法专业班级:学号:姓名:实验时间:实验地点:指导教师:冯珊一、 实验目的1、掌握栈和队列的顺序存储结构和链式存储结构,以便在实际背景下灵活运用
2、掌握栈和队列的特点,即先进后出与先进先出的原则
3、掌握栈和队列的基本操作实现方法
二、 实验内容一、实验目的及要求1、掌握栈和队列的顺序存储结构和链式存储结构,以便在实际背景下灵活运用
2、掌握栈和队列的特点,即先进后出与先进先出的原则
3、掌握栈和队列的基本操作实现方法
二、实验学时2学时三、实验任务任务一:( 1)实现栈的顺序存储(2)实现栈的链式存储
任务二:实现顺序存储的循环队列,完成键盘缓冲区的功能
四、实验重点、难点1
进栈、出栈栈顶指针都要改变
队空、队满的条件及入队、出队时指针的变更
五、操作内容与要求1
任务一( 1):完成下列程序,该程序实现栈的顺序存储结构,构建顺序栈(栈中的元素依次为 R,S,Y,F,C,T),依次进行进栈和出栈操作,判断栈空和栈满操作,返回栈顶元素操作
要求生成顺序栈时,从键盘上读取数据元素
(1)源代码: #include #include #defineSTACK_INIT_SIZE 100 #defineSTACKINCREMENT 10 # defineOK 1 # defineERROR 0 typedefchar SElemType; /* 顺序栈的存储类型 */typedefstruct//define structure SqStack(){ SElemType *base; SElemType *top; int stacksize; } SqStack; /* 构造空顺序栈 */int InitStack(SqStack * S) //InitStack() sub-function{ S->base = (