文档介绍:数据结构—数制转换
数据结构—数制转换
数据结构—数制转换
实验一 栈的应用 数制转换
1。程序设计简介
该程序以顺序栈为工具,实现十进制数到其他一至十六进制数的转换。
ﻩ设计中采用了一个循环,使得用户可重复进行数制转换。需转换的十进制数和要转换的数制均通过交互方式输入。因采用了顺序栈,程序中包含SqStack.h 。
2。源程序
#include〈>//cout,cin
#include"process。h”//exit()
#include”stdio。h”//EOF,NULL
#include”"
template〈class T〉
void convert(T n,T m)
{//把十进制数n转换为m进制数
ﻩT e;
ﻩchar c;
ﻩSqStack〈int> s(10);
ﻩcout〈〈"需转换的十进制数是:"〈<n〈<endl;
ﻩwhile(n)
ﻩ{
ﻩﻩtry
ﻩ{
ﻩﻩs。Push(n%m);}
ﻩﻩcatch(char *err)
ﻩﻩ{ cout<<err<〈endl;ﻩ }
ﻩﻩn=n/m;
ﻩ}
ﻩcout<〈"转换为”〈〈m〈<"进制数为:";
while(!())
{
ﻩ try
ﻩﻩﻩ{ e=s.Pop ();
ﻩ if(e<10)
ﻩﻩﻩ cout<<e〈<'\t';
ﻩﻩﻩ else
ﻩﻩﻩﻩ {
数据结构—数制转换
数据结构—数制转换
数据结构—数制转换
ﻩﻩﻩﻩﻩ c='A'+e-10;
ﻩ ﻩ cout〈〈c<〈'\t';
ﻩﻩﻩﻩ }
ﻩ}
ﻩ catch(char *err)
{ cout〈<err〈<endl; }
ﻩ}//
cout<<endl;
}
void main()
{
int n,m;//分别存放被转换的数及转换数制
ﻩchar ans; //工作变量,存放是否继续的应答
ﻩint flag=1;//工作变量,是否继续的标志
ﻩwhile(flag)
{
ﻩﻩcout<<”输入需转换的十进制数: ";
cin〉〉n;
cout<<"输入需转换的数制: ";
ﻩ cin>>m;
ﻩ convert(n,m);
ﻩ cout<〈"继续吗(Y/N)?"〈〈endl;
ﻩcin>>ans;
ﻩﻩif(ans==’Y’||ans==’y')
ﻩﻩflag=1;
ﻩﻩelse {
ﻩﻩﻩflag=0;
ﻩ ﻩcout<<"程序运行结束,BYe—Bye!"<<endl;
ﻩﻩ}
}//while
}//main
数据结构—数制转换
数据结构—数制转换
数据结构—数制转换
实验二 表达式括号匹配配对判断问题
假设一个算法表达式中包括圆括号、方括号两种,设计判别表达式中括号是否正确匹配的算法。
(1)表达式用字符串表示,以初始化方式创建或以交互方式创建;
(2