链栈实验报告
- 格式:doc
- 大小:21.00 KB
- 文档页数:3
数据结构实验报告
姓名:方钢学号:专业:电子商务班级:10—1班
指导教师:实验时间:实验地点:新区实验楼四楼
(实验题目)链栈实验报告
1.实验内容和要求
1.1实验要求
①本次实验中,链栈使用带头结点的单链表实现。
②链栈结构定义,算法实现全部放入库函数“linkStack.h”中;
③各运算和变量命名直观易懂,并有相应的注释。
1.2实验内容
<1>初始化一个链栈。
<2>判断是否空栈。
<3>入栈
<4>取栈顶元素
<5>出栈
<6>将10进制数转换为16进制数
2.实验目的
①掌握栈的基本概念。
②掌握链栈的建立、入栈和出栈等方法。
③根据具体问题的需要,设计出合理的表示数据的结构,并设计相
关算法。
3.数据结构设计
3.1
<1>初始化一个链栈。
<2>判断是否空栈。
<3>入栈
<4>取栈顶元素
<5>出栈
算法:
int main(int argc, char* argv[])
{
node* H, *L, *P,*q;
int y;
initialstack(L);//初始化
if(stackEmpty(L))
cout<<"空栈"< else cout<<"栈不空"< cout<<"尾插法创建带头结点的单链表>>"< //以“9999”作为结束元素输入条件,用引用参数返回链表 pushstack( L ); H=L->next;//H为头指针 cout<<"入栈元素顺序为:"; P=L->next; while(P) { cout< P=P->next; } cout< popstack(H); L->next=H; cout<<"出栈后元素顺序为:"; P=H; while(P) { cout< P=P->next; } cout< if(stacktop(H,q)) { y=q->data; cout<<"栈顶元素"< } destroyList(L); return 0; } 截图: 3.2 算法: int main(int argc, char* argv[]) { node *p,*L,*H; initialstack(L); int M,x; char a,b,c,d,e,f; cout<<"输入一个10进制数:"; cin>>M; Tentosixteen(&M,L); H=L->next; cout<<"入栈元素顺序为:"; p=L->next; while(p) { cout< p=p->next; } cout< popstack(H); L->next=H; cout<<"输出一个16进制数:OX"; p=H; while(p) { x=p->data; switch(x) { case 97: cout<<"A"; break; case 98: cout<<"B"; break; case 99: cout<<"C"; break; case 100: cout<<"D"; break; case 101: cout<<"E"; break; case 102: cout<<"F"; break; default: cout< } p=p->next; } cout< destroyList(L); return 0; } 截图: 4.总结和心得 1>通过链栈的上机操作明白了代码在内存中的实现过程,理解了进制转换在 内存中的实现方式; 2>使用了switch—case来判断命名ABCDEF