Существует ряд проблем с вашим кодом:
Вы программируете на C ++, а не на C, поэтому вместо struct node *next
вы должны просто написать node *next
.
Ваша функция insertNodes
возвращает указатель на начало списка, поэтому вам нужно вернуть node*
, а не int
.
Когда вы вставляете в список с существующей головой, вы никогда не вставляете элемент.Вы должны сделать Ptr->next = aNode
, а не Ptr->next = Ptr
.
В вашей основной функции вы должны передать указатель на начало списка на insertNodes
, но вына самом деле передать его int
.Вместо этого попробуйте A[i] = insertNodes(A[i], num)
.
Вы храните float
в узлах списка, но вводите int
- это действительно нужно?
Однако, поскольку вы находитесь в C ++, вы, вероятно, можете избежать большинства этих ловушек, полностью полагаясь на то, что стандартная библиотека уже предоставляет.
Просто #include <deque>
, и вы можете использовать все, что std::deque
(a d ouble- e nded que ue), включая push_back
для добавления элементов в конце, front
для доступапервый элемент и pop_front
для его удаления - настоящая очередь, нет необходимости в пользовательских связанных списках:
#include "stdafx.h"
#include <deque>
#include <vector>
#include <iostream>
std::vector<std::deque<float>> A {5};
int _tmain(int argc, _TCHAR* argv[])
{
float input;
for (int i = 0; i < 5; i++)
{
std::cout << "Insert number: ";
std::cin >> input;
A[i].push_back(input);
}
return 0;
}