当前位置:文档之家› 数据结构_实验三_栈和队列及其应用

数据结构_实验三_栈和队列及其应用

实验编号:3四川师大《数据结构》实验报告2016年10月29日
实验三栈和队列及其应用_
一.实验目的及要求
(1)掌握栈和队列这两种特殊的线性表,熟悉它们的特性,在实际问题背景下灵活运用它们;
(2)本实验训练的要点是“栈”的观点及其典型用法;
(3)掌握问题求解的状态表示及其递归算法,以及由递归程序到非递归程序的转化方法。

二.实验内容
(1)编程实现栈在两种存储结构中的基本操作(栈的初始化、判栈空、入栈、出栈等);
(2)应用栈的基本操作,实现数制转换(任意进制);
(3)编程实现队列在两种存储结构中的基本操作(队列的初始化、判队列空、入队列、出队列);
(4)利用栈实现任一个表达式中的语法检查(括号的匹配)。

(5)利用栈实现表达式的求值。

注:(1)~(3)必做,(4)~(5)选做。

三.主要仪器设备及软件
(1)PC机
(2)Dev C++ ,Visual C++, VS2010等
四.实验主要流程、基本操作或核心代码、算法片段(该部分如不够填写,请另加附页)(1)编程实现栈在两种存储结构中的基本操作(栈的初始化、判栈空、入栈、出栈等);
A.顺序储存:
代码部分:
栈" << endl;
cout << " 2.出栈" << endl;
cout << " 3.判栈空" << endl;
cout << " 4.返回栈顶部数据" << endl;
cout << " 5.栈长" << endl;
cout << " 0.退出系统" << endl;
cout << "你的选择是:" ;
}
链式储存:
代码部分:
栈"<<endl;
cout<<"——————2.出栈"<<endl;
cout<<"——————3.得到顶部数据"<<endl;
cout<<"——————4.判断栈是否为空"<<endl;
cout<<"——————5.输出栈的长度"<<endl;
cout<<"——————0.退出程序"<<endl;
cout<<"你的选择是:";
cin>>select;
switch (select){
case 0:break;
case 1:
cout<<"push data:";
cin>>e;
if(push(L,e)){
cout<<"push succeed"<<endl;
}
else cout<<"push failed"<<endl;
break;
case 2:
if(pop(L,e)){
cout<<"data "<<e<<" is pop"<<endl;}
else cout<<"pop failed"<<endl;
break;
case 3:
if(GetTop(L,e)){
cout<<"head data "<<e<<" is pop"<<endl;}
else cout<<"Get failed"<<endl;
break;
case 4:
if(StackEmpty(L)){
cout<<"stack is not NULL"<<endl;}
else cout<<"stack is NULL"<<endl;
break;
case 5:
cout<<"this stack length is "<<StackLength(L)<<endl;
break;
}
}
}
1.
过用工程将文件分类后还是清晰简单了些.也方便修改.
注:实验成绩等级分为(90-100分)优,(80-89分)良,(70-79分)中,(60-69分)及格,(59分)不及格。

相关主题