>Array is a simple sequence of numbers which are not
>concerned about each-others positions.
This is not true, what about arrays of objects ? They may be
concerned about each other in some way.
>adding,removing or modifying any array element is very >easy.
This is untrue also, adding, removing elements in array is
significantly more complex than removing or adding elements
in linked list. This is because removing elements from array
causes all elements after it to be shifted back, whereas
with linked list, its merely traversing the list to find the
node, previous node, and the next node and setting pointers,
and inserting element into array will probably call for
1) resizing the whole array size (ie. assingning a new,
bigger memory chunk for it)
2) copying elements from the former smaller array to the new
- bigger one.
This is a huge trade off, provided that in list, its simply
matter of setting the NEXT pointer of one of the nodes.
Main differences between the two are:
1) arrays are RANDOM ACCESS structures, where you can access
elements in random/indexed manner, whereas list is a
sequential access structure. This makes such algorithms like
heap sort or binary search to work much faster on arrays
2) arrays are static/fixed size whereas lists are dynamic
size structures. It means that when creating an array (both
on stack or heap), you HAVE to specify its size. With lists,
you just create an empty list and freely expand it
3) array consist of continuous chunks of memory, ie. nth
element is at the memory location of :
address_of_array + sizeof(array_element_type) * n
this always holds true, that is why following will always work :
for(int i=0;i < ARRAY_SIZE; i++)
cout << *(array++);
List is a sequence of nodes, connected by NEXT pointers, so
consequent nodes may lie WHEREVER in memory
Array is a simple sequence of numbers which are not
concerned about each-others positions. they are independent
of each-others positions. adding,removing or modifying any
array element is very easy.Compared to arrays ,linked list
is a comlicated sequence of numbers.each number in the
linked list is connected to its previous & next no. via a
link which is nothieng but a pointer.Addition,removal of
no.s in linked list is related to this pointer direction &
linking that no. to the no. which is already present in the
1.array is fixed length and Array is a simple sequence of
numbers which are not concerned about each-others positions
but linked list is variable length
2.in array values are accessing easy but linked list is
some time taken process bcoz search aither forword or
3.in array updating operations are time taken comparing
4.array is not growble and linkedlist is growble
1.Easy to use
2.No memory management needed
3.Can access any element by index
4.Fairly quick to loop
1.Static size (canít increase the size)
2.Most likely not enough or too much memory (you never know
how many elements are needed)
1.Dynamic size (can increase or decrease the list)
2.No memory is wasted
1.Lots of overhead code (lots of malloc calls and assigning
2.Must traverse entire list to go to the nth node.
Now I know that other languages such as C# and Java have
better data structures than arrays and linked lists (like
ArrayLists and Vectors), but this is for the C language and
it doesnít have those. So based on what youíve read above
you can decide which is better for the job needed. Neither
arrays nor linked lists are better but they do have their
1)Array has a static storage where as in linked list it is
2)To add some elements in an array is impossible since the
size is predefined.For the same case we can add elements at
the beginning,in the middle and also in the end.
3)To access the data from array is very easy while to access
data from linked list is some complex.
a number is perfect if it is equal to the sum of its proper
6 is perfect number coz its proper divisors are 1,2 and
three.. and 1+2+3=6...
a number is deficient if the sum of its proper divisor is
less than the number..
sample: 8 is deficient, coz its proper divisors are 1,2 and
4, and 1+2+4=7.
abundant number, if the sum of its proper divisor is greater
than the number..
sample..12 is abundant coz 1+2+3+4+6=16 which is geater than 12.
now write a program that prompts the user for a number, then
determines whether the number is perfect,deficient and