о списке избранных, как я могу набрать sh передних N-ых чисел, созданных случайным образом? - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть вопрос о связанном списке c ++. Я знаю, как вставить первые данные, но я хочу вставить несколько случайных чисел. Это моя функция push_front (). Мне нужно использовать эту функцию для реализации функции push_frontN (). пожалуйста, помогите мне !!

struct Node{
    int data;
    Node* next;
    Node(int i = 0; Node* n = nullptr){
        data = i, next = n;
    }
    ~Node() {}
};

int size(Node* p) {
    if (empty(p)) return 0;
    int count = 0;
    for (pNode c = p; c != nullptr; c = c->next, count++);
    return count;
}

Node* push_front(Node* p, int val){
    if(empty(p)) return new Node{val}; //function empty is already created.
    return new Node{val, p};
}

unsigned long rand_extended(int range) {
    if (range < RAND_MAX) return rand();
    return rand() * RAND_MAX + rand();
}

Node* push_frontN(Node* p, int N){
    int range = N + size(p);  

    srand((unsigned)time(nullptr));  

    for (int i = 0; i < N; i++) {
        int val = rand() % range;
        p = push_front(p, val);
        cout << setw(7) << "\r\tinserting in [" << i << "]=" << val;
    }
    cout << "\n";

    return p;
}  

Thank you
...