如何使用双向链表创建排序表?

时间:2019-04-04 19:07:00

标签: sorting doubly-linked-list

我需要从这个双向链表中创建一个排序链表。另外,由于某种原因,我的随机数生成器没有生成随机数。其他一切都很好。

我尝试了在网上找到的多个随机数生成器,但是列表始终是从高数到0的倒数,而不是多个随机数。

//main.cpp
 //Random Number seed set once here
    srand(static_cast<unsigned int> (time(NULL)));

    //Declare and initialize variables
    Node *head = new Node();
    head = head->fillNode(rand() % 10 + 1);

    //Print Normal List
    cout << "Original List" << endl;
    head->printNode();
    cout << endl << endl;

//Node.h
Node *Node::fillNode(int n) {
    //Initialize the front
    Node * head;
    Node * tail;
    head = this;
    head->data = n--;
    head->next = NULL;
    head->prev = NULL;
    tail = head;
    //Loop until filled
    do {
        Node *next = new Node;
        // make the new node point to the current tail of the list
        Node *prev = tail;
        next->data = n--;
        next->next = NULL;
        tail->next = next;
        tail = next;
    } while (n >= 0);
    return head;
}

我希望输出是随机顺序的数字0到10。但是,我总是从一个随机点的高位开始获得0到10的数字,并且总是向下计数到零。 (即543210或3210)。

0 个答案:

没有答案