您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > VC++实验四指导书V1.0
实验四堆栈存储结构的实现【实验目的】1.通过实验理解堆栈的概念;2.通过实验掌握堆栈的操作。【实验学时】2学时【实验类型】验证型【实验内容】1.掌握堆栈数据结构的特点;2.掌握堆栈的编码实现及进栈、出栈等操作;【实验原理】堆栈数据结构实现现有一组数据(12,3,5,34,65,10,7,34,79),采用堆栈存储结构,上机完成以下任务:(1)建立数组形式的堆栈,用于存储该组数据。(2)把数据进行入栈、出栈操作,观察堆栈数据变化情况。1用top表示栈顶,用bottom表示栈底,用stacksize表示栈的大小。2用一个多行编辑框(对应CString变量m_editstack),随时显示堆栈当前的状态。3用一个编辑框(关联变量intnewdata),输入准备入栈的数据。4我们用0指示堆栈的底部。也就是bottom永远是0。5当开始初始化堆栈的时候,堆栈里面没有数据,堆栈为空。“top”的值为“-1”。6第一个数据入栈,top先增加1,然后把数据放入数组“0”号位置。也就是说,当top和bottom都是0的时候,堆栈里面是有一个数据的。1【实验步骤】1建立一个新的工程,在界面上添加按钮如下:1)初始化堆栈2)入栈操作3)出栈操作添加两个用于显示的编辑框,一个用于一般显示(m_editmemo),另一个用于随时显示堆栈的情况(m_editstack)。再添加一个编辑框、用于输入新的可以入栈的数据。为这个编辑框关联变量intnewdata;建立这6个对象,为它们修改ID,标题,并为按钮添加事件处理函数。2在类视图,为对话框类增加用于堆栈的成员变量,包括数组:intdata[30];堆栈指针:inttop,bottom;堆栈大小标记:intstacksize;3在类的初始化函数OnInitDialog()中,把堆栈置为空,堆栈大小设为20;top=-1;bottom=0;stacksize=20;4在初始化堆栈按钮函数中,也是把堆栈置为空;top=-1;bottom=0;5为对话框类增加显示数据函数voidDispStack(void),可以随时显示堆栈内容:inti;m_editmemo=;sprintf(str,栈顶:%d;\r\n,top);m_editmemo+=str;sprintf(str,栈底:%d;\r\n,bottom);m_editmemo+=str;2for(i=top;i=bottom;i--){sprintf(str,第%d个数据:%d\r\n,i+1,data[i]);m_editmemo+=str;}UpdateData(false);6编制“入栈操作”按钮的事件响应函数:UpdateData();if(topstacksize)AfxMessageBox(栈已经满了!);else{top=top+1;data[top]=newdata;}DispStack();7编制“出栈操作”按钮的事件响应函数:charstr[120];if(topbottom)AfxMessageBox(栈已经空了!);else{sprintf(str,出栈数据为:%d,data[top]);m_editmemo+=str;top=top-1;}DispStack();8如果显示数据太多,可以增加按钮,清除显示内容:m_editmemo=;3UpdateData(false);
本文标题:VC++实验四指导书V1.0
链接地址:https://www.777doc.com/doc-6327152 .html