如何指向链表中的下一个内存?

时间:2013-03-03 10:57:58

标签: c++ linked-list hashtable

这些是我的结构声明

struct Package_Node
{
    int bar_code;
    float package_weight;
    struct Package_Node *next;//_packaged;
};

struct Key_Node
{
    int key;
    struct Package_Node *next;//_package;
};

这就是如何在其中添加一些随机项

        for(int i=0;i<N;i++)
        {
            barcodeTemp = rand() % max_value + 1;
            keyTemp = barcodeTemp % X;
            tempWeight = rand() % 500 + 1;
            totalPackages[i].bar_code=barcodeTemp;
            totalPackages[i].package_weight=tempWeight;

        }
        for(int i=0;i<N;i++)
        {
            cout << totalPackages[i].bar_code <<endl;
            cout << totalPackages[i].package_weight << endl;
        }

我想知道我是否需要在代码中添加一些内容,并在结构外部创建一个链表?为了更清楚,我使用Package_node结构创建(假设)5个随机包,它具有bar_code和package_weight的随机值。我正在使用散列表方法来确定key_node中将存储包信息的位置。如果key_node [1]有两个元素并且我想添加第三个元素,我该怎么做才能在不删除任何内容的情况下添加第三个元素。它必须是一个链接列表,并且结尾必须始终指向NULL。 / p>

1 个答案:

答案 0 :(得分:0)

将这样的内容添加到for循环中:

totalPackages[i].next = NULL;
if (i>0) {
  totalPackages[i-1].next = &totalPackages[i];
}