第三章习题5.3
2017-10-10 18:30
239 查看
题目:设计算法,把十进制整数转换为二至九进制之间的任一进制输出。
#include <iostream>
using namespace std;
template <class T>
class node
{
public:
T data;
node<T>*link;
node(const T&el,node<T>*ptr=NULL)
{
data=el;
link=ptr;
}
};
template <class T>
class pstack
{
private:
node<T>*top;
int size;
public:
pstack(T s=0)
{
top=NULL;
size=0;
}
~pstack()
{
clear();
}
void clear()
{
while(top!=NULL)
{
node<T>*temp=top;
top=top->link;
delete temp;
}
size=0;
}
void push(const T item)
{
node<T>*tmp=new node<T>(item,top);
top=tmp;
size++;
}
T pop()
{
T temp;
if(size==0)
{
cout<<"栈为空,不能进行删除!"<<endl;
exit(0);
}
else
{
temp=top->data;
node<T>*tmp=top;
top=top->link;
delete tmp;
size--;
}
return temp;
}
T Top()
{
T temp;
if(size==0)
{
cout<<"栈为空,不能进行删除!"<<endl;
exit(0);
}
else
{
temp=top->data;
}
return temp;
}
bool isempty()
{
if(size==0)
return true;
else
return false;
}
};
int main()
{
int a,b,i=1,d;
pstack<int>c;
while(i!=2)
{
cout<<"输入要转换的十进制数:";
cin>>a;
cout<<"输入转换为的进制:";
cin>>b;
if(b>=2&&b<=9)
{
while(a)
{
d=a%b;
c.push(d);
a=a/b;
}
while(!c.isempty())
{
cout<<c.pop();
}
cout<<endl;
}
else
{
cout<<"输入错误!!"<<endl;
}
cout<<"1.继续\n";
cout<<"2.退出\n";
cout<<"请选择";
cin>>i;
system("cls");
}
}
#include <iostream>
using namespace std;
template <class T>
class node
{
public:
T data;
node<T>*link;
node(const T&el,node<T>*ptr=NULL)
{
data=el;
link=ptr;
}
};
template <class T>
class pstack
{
private:
node<T>*top;
int size;
public:
pstack(T s=0)
{
top=NULL;
size=0;
}
~pstack()
{
clear();
}
void clear()
{
while(top!=NULL)
{
node<T>*temp=top;
top=top->link;
delete temp;
}
size=0;
}
void push(const T item)
{
node<T>*tmp=new node<T>(item,top);
top=tmp;
size++;
}
T pop()
{
T temp;
if(size==0)
{
cout<<"栈为空,不能进行删除!"<<endl;
exit(0);
}
else
{
temp=top->data;
node<T>*tmp=top;
top=top->link;
delete tmp;
size--;
}
return temp;
}
T Top()
{
T temp;
if(size==0)
{
cout<<"栈为空,不能进行删除!"<<endl;
exit(0);
}
else
{
temp=top->data;
}
return temp;
}
bool isempty()
{
if(size==0)
return true;
else
return false;
}
};
int main()
{
int a,b,i=1,d;
pstack<int>c;
while(i!=2)
{
cout<<"输入要转换的十进制数:";
cin>>a;
cout<<"输入转换为的进制:";
cin>>b;
if(b>=2&&b<=9)
{
while(a)
{
d=a%b;
c.push(d);
a=a/b;
}
while(!c.isempty())
{
cout<<c.pop();
}
cout<<endl;
}
else
{
cout<<"输入错误!!"<<endl;
}
cout<<"1.继续\n";
cout<<"2.退出\n";
cout<<"请选择";
cin>>i;
system("cls");
}
}
相关文章推荐
- 《Python 核心编程》之第三章习题 3.12
- 数据结构与算法分析课后习题第三章(5)
- 具体数学第二版第三章习题(1)
- 计算机网络(谢)——第三章读书笔记5.3
- 算法入门经典第三章课后习题
- APUE第三章3.2习题分析
- 编程珠玑第三章习题1
- 《算法竞赛入门经典》第三章习题3-1
- 算法竞赛入门经典第二版第三章习题
- Unix环境高级编程 第三章习题答案
- 编程珠玑第三章习题3.7(5-8)
- 整理 刘汝佳紫书第三章习题代码 未完待续
- 第三章习题T4
- 习题5,5.3
- Java第三章习题3-4(for循环输出俄文字母表)
- C++Primer第五版 第三章习题答案(31~40)
- 【算法】数据结构与算法分析学习笔记——第三章习题选做Josephus问题
- UNIX环境高级编程———第三章习题
- 编程珠玑 第二版 第三章 习题答案
- 算法竞赛入门 第三章习题