#include <iostream>
#include <stdlib.h>
#include <stdbool.h>
using namespace std;
typedef struct node
{
int num;
struct node* pnext;
}qnode,*pnode;
typedef struct stack
{
pnode top;
pnode botton;
}qstack,*pstack;
void init(qstack &s)
{
s.top=(pnode)malloc(sizeof(qnode));
s.botton=s.top;
}
bool empty(qstack &s)
{
if(s.top==s.botton)
return true;
else
return false;
}
void push(qstack &s,int e)
{
pnode q;
q=(pnode)malloc(sizeof(qnode));
q->num=e;
q->pnext=s.top;
s.top=q;
}
void traverse(qstack &s)
{
pnode q=s.top;
while(q!=s.botton)
{
cout<<q->num;
q=q->pnext;
}
}
int main()
{
qstack s;
int n;
cin>>n;
init(s);
while(n!=0)
{
push(s,n%16);
n=n/16;
}
traverse(s);
}
98-5(进制转换)
本文介绍了一个使用C++实现的栈数据结构,并利用该栈将十进制数转换为十六进制数的方法。通过定义节点和栈的结构体,初始化栈、判断栈是否为空、压栈以及遍历栈等操作,最终实现了从输入的十进制整数到十六进制字符串的转换。
摘要由CSDN通过智能技术生成