一、实验目的及要求1) 掌握栈和队列这两种特殊的线性表,熟悉它们的特性,在实际问题背景下灵活运用它们。本实验训练的要点是“栈”和“队列”的观点。
二、实验内容与步骤1) 利用栈,实现数制转换。2) 利用栈,实现任一个表达式中的语法检查(选做)。3) 编程实现队列在两种存储结构中的基本操作(队列的初始化、判队列空、入队列、出队列)。
三、实验流程、操作步骤或核心代码、算法片段顺序
栈:1) Status InitStack(SqStack &S){=(ElemType*)malloc(STACKINITSIZE*sizeof(ElemType));if(! )return ERROR;}=STACKINITSIZE;return OK;2) Status DestoryStack(SqStack &S){free();return OK;}3) Status ClearStack(SqStack &S){=;return OK;}4) Status StackEmpty(SqStack S){if(==)return OK;return ERROR;}5) int StackLength(SqStack S){return -;}6) Status GetTop(SqStack S,ElemType &e){if(->=){=(ElemType *)realloc(,(+STACKINCREMENT)*sizeof(ElemType));if(!) return ERROR;=+;+=STACKINCREMENT;}*++=e;return OK;}7) Status Push(SqStack &S,ElemType e){if(->=){=(ElemType *)realloc(,(+STACKINCREMENT)*sizeof(ElemType));if(!
队列:1) Status InitQueue(QqStack &Q){=(ElemType*)malloc(QUEUEINITSIZE*sizeof(ElemType));if(! )return ERROR;}=QUEUEINITSIZE;return OK;2) Status DestoryQueue(QqStack &Q){free();return OK;}3) Status ClearQueue(QqStack &Q){=;return OK;}4) Status QueueEmpty(QqStack Q){if(==)return OK;return ERROR;}5) int QueueLength(QqStack Q){return -;}6) Status GetTop(QqStack Q,ElemType &e){if(->=){=(ElemType *)realloc(,(+QUEUEINCREMENT)*sizeof(ElemType));if(!) return ERROR;=+;+=QUEUEINCREMENT;}*++=e;return OK;}7) Status Push(QqStack &Q,ElemType e){if(->=){=(ElemType *)realloc(,(+QUEUEINCREMENT)*sizeof(ElemType));if(!
四、数据处理与结果在实验过程中,我们按照上述操作步骤进行了操作,并记录了实验数据。经过处理,得到了实验结果。
五、附件:原始数据见附件
注:以上内容仅供参考,实际实验报告应根据具体实验情况编写。