node lists using an index is not the only means of referring to the place where an element appears in sequence if we have sequence implemented with (singly or doublylinked listthen it could possibly be more natural and efficient to use node instead of an index as means of identifying where to access and update in this sectionwe define the node list adtwhich abstracts the concrete linked list data structure (sections and using related position adt that abstracts the notion of "placein node list node-based operations let be (singly or doublylinked list we would like to define methods for that take nodes as parameters and provide nodes as return types such methods could provide significant speedups over index-based methodsbecause finding the index of an element in linked list requires searching through the list incrementally from its beginning or endcounting elements as we go for instancewe could define hypothetical method remove(vthat removes the element of stored at node of the list using node as parameter allows us to remove an element in ( time by simply going directly to the place where that node is stored and then "linking outthis node through an update of the next and prev links of its neighbors similarlywe could insertin ( timea new element into with an operation such as addafter(ve)which specifies the node after which the node of the new element should be inserted in this casewe simply "link inthe new node defining methods of list adt by adding such node-based operations raises the issue of how much information we should be exposing about the implementation of our list certainlyit is desirable for us to be able to use either singly or doubly