c++ - 代码给出 ASCII 数字而不是字符

标签 c++ char ascii red-black-tree

此代码是 RedBlack Tree 程序的一部分,该程序应该接收“ADSOMERT”并将其字符排序为有序形式“A D E M O R S T”。它完成了工作,但每个字符的 ASCII 数字为“65 68 69 77 79 82 83 84”。

主要功能:

int main()
{

    Tree char_tree = Tree();

    cout << "Eingabe: ADSOMERT" << endl;

    char_tree.insert('A');
    char_tree.insert('D');
    char_tree.insert('S');
    char_tree.insert('O');
    char_tree.insert('M');
    char_tree.insert('E');
    char_tree.insert('R');
    char_tree.insert('T');

    cout << "ADSOMERT in In-Order" << endl;

    char_tree.print_inorder();
}

insert 和 rb_insert 函数:

void Tree::insert(int x)
{
    ...
}

void Tree::rb_insert(Node *& node, Node *&parent, int x, bool sw)
{
    ...
}

inorder 和 print_inorder 函数:

void Tree::print_inorder()
{
    inorder(head->right);
    cout << endl;
}


void Tree::inorder(Knote* node)
{
    if (node != nullptr)
    {
        inorder(node->left);
        cout << node->item << " ";
        inorder(node->right);
    }
}

节点和树的类依赖:

节点.h

class Node {
public:
    Node(int data = 0);
    bool red;
    int item;
    Node *left;
    Node *right;
    Node *parent;
};

节点.cpp

Node::Node(int data)
{
    this->item = data;

    parent = nullptr;
    left = nullptr;
    right = nullptr;
    red = true;
}

最佳答案

void Tree::inorder(Knote* node)
{
    if (node != nullptr)
    {
        inorder(node->left);
        cout << node->item << " ";
        inorder(node->right);
    }
}

class Node {
public:
    Node(int data = 0);
    bool red;
    int item;
    Node *left;
    Node *right;
    Node *parent;
};

你正在输出 node->item 并且它是一个 int。如果你想输出“A D E M O R S T”,应该是一个字符

template <class T>
class Node{
public:
    Node(int data = 0);
    bool red;
    T item;
    ....
};

像这样

关于c++ - 代码给出 ASCII 数字而不是字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30367776/

相关文章:

C++ 字符串到 char* 数组结构

linux - 将非标准字符写入 Linux 命令行

c++ - 从 C 移植到 C++ 时应该注意什么

c++ - opencv中基于卡尔曼滤波器的鼠标跟踪

string - 如何将字符串的第一个字符与 VBScript 中的特定字符进行比较?

c - C代码的不合逻辑输出

javascript - 带有 React 变量的 HTML 元素不显示 ASCII

java - 在 Blackberry 中上传 UTF-8 文本文件

c++ - 如何获取当前DLL的目录

c++ - 独立 exe : Where on disk to save config files and logs?