您好,欢迎访问三七文档
数据结构实验报告顺序栈操作验证(参考)专业:学号:姓名:一、顺序栈操作验证1.实验目的⑴掌握栈的顺序存储结构;⑵验证栈的操作特性;⑶掌握栈的基本操作实现方法。2.实验内容⑴建立含有若干个元素的顺序栈;⑵对已建立的顺序栈实现入栈、出栈、判栈空和判栈满等基本操作。3.设计与编码#includestdio.h#includemalloc.h#defineMAX_STACK120//栈的最大数据元素数目typedefstructstack{charitem[MAX_STACK];//存放栈中数据元素的存储单元inttop;//栈顶指针}STACK;voidINitStack(STACK*S){S-top=-1;}intStackEmpty(STACK*S)//判断栈是否为空{if(S-top==-1)return1;elsereturn0;}voidGetTop(STACK*S,int*item)//获取栈顶元素{if(StackEmpty(S)){printf(Stackisempty\n);return;}else*item=S-item[S-top];}STACK*Push(STACK*S,charitem)//入栈{if(S-top==MAX_STACK-1){printf(Stackisfull\n);returnNULL;}elseS-item[++S-top]=item;returnS;}STACK*Pop(STACK*S,int*item)//出栈{if(StackEmpty(S)){printf(Stackisempty\n);returnNULL;}else*item=S-item[S-top--];returnS;}voidPrint(STACK*S){inti;for(i=0;i=S-top;i++)printf(%c,S-item[i]);printf(\n);}voidmain(){structstack*S=(structstack*)malloc(sizeof(structstack));charch;INitStack(S);printf(请输入原字符串:);while((ch=getchar())!='\n')//入栈{Push(S,ch);}printf(栈顶元素为:);GetTop(S,&ch);putchar(ch);printf(\n);printf(字符串逆置输出:);while(!StackEmpty(S))//出栈{Pop(S,&ch);putchar(ch);}putchar('\n');}4.运行结果二、数制转换问题1.问题描述对于输入的任意一个非负十进制整数,输出与其等值的其他进制数(二进制、八进制或十六进制)。2.任务要求⑴建立模型,确定存储结构;⑵对任意十进制数,实现进制转换问题。3.设计与编码主要实现代码如下usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;namespace进制转换器{publicpartialclassMainFrm:Form{publicMainFrm(){InitializeComponent();}privatevoidMainFrm_Load_1(objectsender,EventArgse){txtStart.Focus();}///summary///十进制转换为八进制////summary///paramname=sender/param///paramname=e/paramprivatevoidradio_dto_Click_1(objectsender,EventArgse){txtEnd.Text=;if(txtStart.Text.Length!=0){//TODO:十进制转为八进制。Int32i;try{i=Convert.ToInt32(txtStart.Text.Trim());lblTitle.Text=十进制转为八进制;txtEnd.Text=Convert.ToString(i,8);}catch{MessageBox.Show(请输入合法的十进制数,提示,MessageBoxButtons.OK,MessageBoxIcon.Warning);}}else{MessageBox.Show(请提供转换数据!,提示,MessageBoxButtons.OK,MessageBoxIcon.Warning);}txtStart.Focus();}///summary///十进制转换为十六进制////summary///paramname=sender/param///paramname=e/paramprivatevoidradio_dth_Click(objectsender,EventArgse){txtEnd.Text=;if(txtStart.Text.Length!=0){//TODO:十进制转换为十六进制。Int32i;try{i=Convert.ToInt32(txtStart.Text.Trim());lblTitle.Text=十进制转换为十六进制;txtEnd.Text=Convert.ToString(i,16);}catch{MessageBox.Show(请输入合法的十进制数,提示,MessageBoxButtons.OK,MessageBoxIcon.Warning);}}else{MessageBox.Show(请提供转换数据!,提示,MessageBoxButtons.OK,MessageBoxIcon.Warning);}txtStart.Focus();}///summary///十进制转换为二进制////summary///paramname=sender/param///paramname=e/paramprivatevoidradio_dtb_Click(objectsender,EventArgse){txtEnd.Text=;if(txtStart.Text.Length!=0){//TODO:十进制转换为二进制。Int32i;try{i=Convert.ToInt32(txtStart.Text.Trim());lblTitle.Text=十进制转换为二进制;txtEnd.Text=Convert.ToString(i,2);}catch{MessageBox.Show(请输入合法的十进制数,提示,MessageBoxButtons.OK,MessageBoxIcon.Warning);}}else{MessageBox.Show(请提供转换数据!,提示,MessageBoxButtons.OK,MessageBoxIcon.Warning);}txtStart.Focus();}///summary///八进制到十进制////summary///paramname=sender/param///paramname=e/paramprivatevoidradio_otd_Click(objectsender,EventArgse){txtEnd.Text=;if(txtStart.Text.Length!=0){//TODO:八进制到十进制。try{lblTitle.Text=八进制到十进制;txtEnd.Text=Convert.ToString(Convert.ToInt32(txtStart.Text.Trim(),8));//八进制转为十进制}catch{MessageBox.Show(请提供合法的八进制数,提示,MessageBoxButtons.OK,MessageBoxIcon.Warning);}}else{MessageBox.Show(请提供转换数据!,提示,MessageBoxButtons.OK,MessageBoxIcon.Warning);}txtStart.Focus();}///summary///十六进制到十进制////summary///paramname=sender/param///paramname=e/paramprivatevoidradio_htd_Click(objectsender,EventArgse){txtEnd.Text=;if(txtStart.Text.Length!=0){try{//TODO:十六进制到十进制。lblTitle.Text=十六进制到十进制;txtEnd.Text=Convert.ToString(Convert.ToInt32(txtStart.Text,16));}catch{MessageBox.Show(请提供合法的十六进制数!,提示,MessageBoxButtons.OK,MessageBoxIcon.Warning);}}else{MessageBox.Show(请提供转换数据!,提示,MessageBoxButtons.OK,MessageBoxIcon.Warning);}txtStart.Focus();}///summary///二进制到十进制////summary///paramname=sender/param///paramname=e/paramprivatevoidradio_btd_Click(objectsender,EventArgse){txtEnd.Text=;if(txtStart.Text.Length!=0){try{//TODO:二进制到十进制。lblTitle.Text=二进制到十进制;txtEnd.Text=Convert.ToString(Convert.ToInt32(txtStart.Text,2));}catch{MessageBox.Show(请提供合法的二进制数!,提示,MessageBoxButtons.OK,MessageBoxIcon.Warning);}}else{MessageBox.Show(请提供转换数据!,提示,MessageBoxButtons.OK,MessageBoxIcon.Warning);}txtStart.Focus();}privatevoidreset_Click(objectsender,EventArgse){txtStart.Text=;txtEnd.Text=;txtStart.Focus();}privatevoidclose_Click(objectsender,EventArgse){this.Close();}}}4.运行结果1)不输入数据,软件会温馨提示2)输入数据选择转换模式3)测试完成,结果正确
本文标题:顺序栈验证实验
链接地址:https://www.777doc.com/doc-4151941 .html