显示链接列表中的元素

时间:2014-06-18 05:09:50

标签: c++ tree linked-list

我正在开发一个用户输入随机数的程序,程序将这些数字放入树中,然后放入链表中。然后要求用户输入两个边界,程序显示最大值和最小值之间的所有数字。

EG。

Enter an integer or 0 to quit: 2
Enter an integer or 0 to quit: 3
Enter an integer or 0 to quit: 4
Enter an integer or 0 to quit: 5
Enter an integer or 0 to quit: 6
Enter an integer or 0 to quit: 0
The values are:
2 3 4 5 6
Enter the minimum:
2
Enter the maximum:
6
The list is: 0x3f0d58

Process returned 0 (0x0)   execution time : 6.464 s
Press any key to continue.

问题是我的程序没有输出列表,而是输出0x3f0d58。

执行输出的功能是

void createlist()  //creates linked list
{
    linkednode *current;
    linkednode *begin;
    current=new linkednode;
    current->data=data[0];
    current->next=NULL;
    begin=current;
    for (int count=1; count<(int)data.size(); count++)
    {
        current=appendlist(current,data[count]);
    }
    cout<<"The list is: "<<begin<<endl;
}

为了获得实际输出的数字,我应该更改什么?

2 个答案:

答案 0 :(得分:1)

根本不是你的指针!

请查看:Pointers了解更专门针对C ++的描述

  • 指针必须始终与变量的类型相同 指着。
  • 声明指针变量不会创建变量类型 它指向。它创建了一个指针变量。
  • 虽然指针用星号声明,但它们并不总是如此 用于星号。星号是一元*运算符。 int * number;
  • 指针必须先初始化才能使用。初始化一个 指针通过将其赋值给变量;变量必须是 与指针类型相同。
  • 要指定变量的指针,请使用&符号 变量的名称。

    m_address =&amp; memory;

  • 要指定指向数组的指针,请不要使用&符号

    s_address = string;

    和NOT s_address =&amp; string; (这也有效,但传统上没有做到)

  • 但是要指定一个指向数组&#34;元素&#34;的指针,请使用&符号:

    element =&amp; string [2];

  • 如果您使用带结构的指针,则需要使用 指针结构表示法, - &gt;

    没有星号,初始化指针保存内存地址。 使用星号,初始化指针引用存储的值 在它的地址。这是你出错的地方。

答案 1 :(得分:1)

您的代码输出begin值。 begin是指向第一个节点的指针。 cout不知道它是一个特定的指针,因为它指向结构A或结构B没有区别。即使它会考虑任何差异,它也不知道成员和应该如何打印。因此,您必须以添加它们的相同方式手动输出值。 此外,最好将数据作为函数的参数 - 它看起来更连贯,您将避免任何全局数据。