notes nowthis size cannot be changed while running the program this we all know is static allocation when writing the programwe have to decide on the maximum amount of memory that would be needed if we run the program on small collection of datathen much of the space will go waste if program is run on bigger collection of datathen we may exhaust the space and encounter an overflow consider the following exampleexamplesupposewe define an array of size if we store elements in itit is said to be full and no space is left in it on the contraryif we store elements in itthen positions are empty and virtually uselessresulting in wastage of memory an array with more than half locations empty full array dynamic data structures can avoid these difficulties the idea is to use dynamic memory allocation we allocate memory for individual elements as and when they are required each memory location contains pointer to the location where the successive element is stored pointer or link or reference is variablewhich stores the memory address of some other variable if we use pointers to locate the data in which we are interestedthen we need not worry about where the data is actually storedsince by using pointerwe can let the computer system itself locate the data when required linked lists use the concept of dynamic memory allocation in this respect they are different than arrays every node in linked list contains 'linkto the next node as shown below this link is achieved by using pointers figure linked list structure item structure item next start structure item end this type of list is called linked list because it is list where order is given by links from one item to the next adt of singly linked lists there are various operationswhich can be performed on lists the list abstract data type definition given here contains small collection of basic operationswhich can be performed on lists lovely professional university