链栈实验报告

  • 格式:doc
  • 大小:21.00 KB
  • 文档页数:3

下载文档原格式

  / 3
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构实验报告

姓名:方钢学号:专业:电子商务班级: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<data<<",";

P=P->next;

}

cout<

popstack(H);

L->next=H;

cout<<"出栈后元素顺序为:";

P=H;

while(P)

{

cout<data<<",";

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<data<<",";

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