链表数据结构

时间:2013-10-26 05:24:05

标签: c++ data-structures linked-list

我正在尝试创建一个Huffman树,所以我创建了一个链表结构。我试图自动打印频率而不是以下方式。

cout << root->left->frequency << endl;
cout << root->left->left->frequency << endl; 
cout << root->left->left->left->frequency << endl; 
cout << root->left->left->left->left->frequency << endl; 

如何使用for循环或任何其他方法打印出以下内容?我不想继续添加left->来访问下一个。

如果需要结构

struct binaryTreeNode
{
string binarycode;
char letter;
int frequency;
int level;

binaryTreeNode *left;
binaryTreeNode *right;
binaryTreeNode()
{
    binarycode = "";
    frequency = 1;
    level = 1;
    letter = NULL;
    left = NULL;
    right = NULL;
}
};

提前致谢!

1 个答案:

答案 0 :(得分:0)

假设你已经正确地构建了树,这应该打印整个最左边的链,直到到达叶子 -

binaryTreeNode *p = root;
while (p->left != NULL) {
    p = p->left;
    cout << p->frequency << endl;
}

或者如果你想在N次迭代后停止,只需添加一个计数器。

请注意,您的代码不会检查每个级别中指针的有效性。