关闭

Qt中QStack简单应用

标签: 数据数据结构
1228人阅读 评论(0) 收藏 举报
分类:

栈就是一种后进先出的数据结构,就是最先进入的数据在栈的最底下,最后才出来,最后进入的数据,在栈的顶端,最先出来。
下面利用栈实现了一个简单十进制到二进制的转换。
比如十进制的 10 转换为 二进制。必须明白数制之间是如何转换的。对于十进制到二进制的转换,是整除取余数,反复直到被转换数为0.

d r= d%2 d=d/2
10 0 5
5 1 2
2 0 1
1 1 0

算的时候余数的顺序为 0 1 0 1但是二进制结果却是 1010,所以他们的顺序恰好是相反的,所以利用栈很好实现。下面是在Qt中控制台下实现的。

#include <QCoreApplication>
#include<QDebug>
#include<QStack>
void T2T(int d);//转换函数
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
T2T(125);
qDebug()<<"test";
    return a.exec();
}

void T2T(int d)
{
    QStack<int> s;//栈
    int r;//保存余数

    while(d!=0)
    {
        r = d%2;
        s.push(r);//余数入栈
        d = d/2;//被转换数除以要转换为的进制数(二进制除2)
    }
    while(!s.isEmpty())
    {
        r =s.pop();//出栈
        qDebug()<<r;
    }
}
1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:14657次
    • 积分:506
    • 等级:
    • 排名:千里之外
    • 原创:35篇
    • 转载:1篇
    • 译文:1篇
    • 评论:1条
    文章分类
    最新评论