I see a number of things that may help you improve your code.
Make sure you have all required #include
s
The code uses getchar
but doesn't #include <cstdio>
. Also, carefully consider which #include
s are part of the interface (and belong in the .h
file) and which are part of the implementation.
Avoid raw pointers
In modern C++, we tend not to use raw pointers very often. In this case, It would probably be better to have two different classes, one would be a LinkedList
class and the other would be a Node
class. That way, instead of starting with a pointer, you can start with an object.
Use nullptr
rather than NULL
Modern C++ uses nullptr
rather than NULL
. See this answer this answer for why and how it's useful.
Match new
with delete
If you allocate memory using new
, you must also free it using delete
or your program will leak memory. Since you use new
in insert()
, you should use delete
in the LinkedList
destructor which you have not yet written.
Don't abuse using namespace std
Putting using namespace std
within your program is generally a bad habit a bad habit that you'd do well to avoid.
Use more descriptive names
The code's traverse
function actually prints the nodes. For that reason it should probably be named something like print()
. Even better would be to have such a function take a std::ostream&
argument so it would be possible to print to something other than std::cout
.
Omit return 0
If your program completes successfully, the return 0
at the end of main()
will be generated automatically, so it's not needed in C++ programs.
I see a number of things that may help you improve your code.
Make sure you have all required #include
s
The code uses getchar
but doesn't #include <cstdio>
. Also, carefully consider which #include
s are part of the interface (and belong in the .h
file) and which are part of the implementation.
Avoid raw pointers
In modern C++, we tend not to use raw pointers very often. In this case, It would probably be better to have two different classes, one would be a LinkedList
class and the other would be a Node
class. That way, instead of starting with a pointer, you can start with an object.
Use nullptr
rather than NULL
Modern C++ uses nullptr
rather than NULL
. See this answer for why and how it's useful.
Match new
with delete
If you allocate memory using new
, you must also free it using delete
or your program will leak memory. Since you use new
in insert()
, you should use delete
in the LinkedList
destructor which you have not yet written.
Don't abuse using namespace std
Putting using namespace std
within your program is generally a bad habit that you'd do well to avoid.
Use more descriptive names
The code's traverse
function actually prints the nodes. For that reason it should probably be named something like print()
. Even better would be to have such a function take a std::ostream&
argument so it would be possible to print to something other than std::cout
.
Omit return 0
If your program completes successfully, the return 0
at the end of main()
will be generated automatically, so it's not needed in C++ programs.
I see a number of things that may help you improve your code.
Make sure you have all required #include
s
The code uses getchar
but doesn't #include <cstdio>
. Also, carefully consider which #include
s are part of the interface (and belong in the .h
file) and which are part of the implementation.
Avoid raw pointers
In modern C++, we tend not to use raw pointers very often. In this case, It would probably be better to have two different classes, one would be a LinkedList
class and the other would be a Node
class. That way, instead of starting with a pointer, you can start with an object.
Use nullptr
rather than NULL
Modern C++ uses nullptr
rather than NULL
. See this answer for why and how it's useful.
Match new
with delete
If you allocate memory using new
, you must also free it using delete
or your program will leak memory. Since you use new
in insert()
, you should use delete
in the LinkedList
destructor which you have not yet written.
Don't abuse using namespace std
Putting using namespace std
within your program is generally a bad habit that you'd do well to avoid.
Use more descriptive names
The code's traverse
function actually prints the nodes. For that reason it should probably be named something like print()
. Even better would be to have such a function take a std::ostream&
argument so it would be possible to print to something other than std::cout
.
Omit return 0
If your program completes successfully, the return 0
at the end of main()
will be generated automatically, so it's not needed in C++ programs.
I see a number of things that may help you improve your code.
Make sure you have all required #include
s
The code uses getchar
but doesn't #include <cstdio>
. Also, carefully consider which #include
s are part of the interface (and belong in the .h
file) and which are part of the implementation.
Avoid raw pointers
In modern C++, we tend not to use raw pointers very often. In this case, It would probably be better to have two different classes, one would be a LinkedList
class and the other would be a Node
class. That way, instead of starting with a pointer, you can start with an object.
Use nullptr
rather than NULL
Modern C++ uses nullptr
rather than NULL
. See this answer for why and how it's useful.
Match new
with delete
If you allocate memory using new
, you must also free it using delete
or your program will leak memory. Since you use new
in insert()
, you should use delete
in the LinkedList
destructor which you have not yet written.
Don't abuse using namespace std
Putting using namespace std
within your program is generally a bad habit that you'd do well to avoid.
Use more descriptive names
The code's traverse
function actually prints the nodes. For that reason it should probably be named something like print()
. Even better would be to have such a function take a std::ostream&
argument so it would be possible to print to something other than std::cout
.
Omit return 0
If your program completes successfully, the return 0
at the end of main()
will be generated automatically, so it's not needed in C++ programs.