110 likes | 241 Vues
This lecture outlines advanced operations on linked lists, including insertion, deletion, and updating items. Key techniques covered are insertFirst, insertLast, insertAfter, and insertBefore methods, which utilize head and tail references effectively. The structure of nodes, including references to the next node, is explained. The implementation of node and list classes, as well as the importance of managing references for dynamic memory, ensures efficient data handling. Memory requirements and advantages of linked lists over contiguous storage are also discussed.
E N D
CSE 246Data Structures and Algorithms Spring2011 Lecture#5
More on Linked List Analysis of Linked list Other operation on link list • Delete(item) • Update(item,value) • List length() • inserFirst() • insertLast() • insertAfter(listposition, value) • InsertBefore(listposition, value) • Use of head and tail reference. Quratulain Rajput
Analysis of Linked list • Contiguous memory is not required. • Each node is linked through references to make a list. • No limit to store item in a list. • Space is required with each node to store reference of the next node. • Require start reference to indicate beginning of a list. • Last node contain null reference that indicate end of list. Quratulain Rajput
Implementation of Node class class Node{ int data; Node next; Node () { // no argument constructor data=0; next=null; } Node (int V) { // one argument constructor data=V; next=null; } } Quratulain Rajput
Implementation of List class class LIST{ Node Head; LIST (){ Head=null; } // list operations } Quratulain Rajput
Insert operation in linked list public void INSERT(int value){ Node NewNode=new Node(value); Node Temp=null, Prev=null; if(Head==null){ Head=NewNode; }else{ Temp=Head; while(Temp!=null){ Prev=Temp; Temp=Temp.next;} Prev.next=NewNode; } } Quratulain Rajput
Display list items public void DisplayList(){ Node Temp=Head; inti=0; while(Temp!=null){ i++; System.out.println("Item "+i+ Temp.data); Temp=Temp.next; } } Quratulain Rajput
getLength() method of List Public intgetLength() { Node Temp=Head; int counter=0; while(Temp!=null) { counter++; Temp=Temp.next; } return counter; } Quratulain Rajput
Delete item by position from list Public void DelNode(int position) { int counter=0; Node Temp=Head; while((counter!=position)&&(Temp!=null)) { counter++; Temp=Temp.next; } if(counter!=position) System.out.println(“Item does not exist”); else System.out.println(“Item has been deleted”); } Traverse a list until counter reach to given position than delete that node. Quratulain Rajput
Delete item by value Public void DelNode(int value) { Node Temp=Head; If (Head.data==value) Head=Head.next; else { while(Temp!=null &&(Temp.next.data != value)) { Temp=Temp.next; } Temp.next=Temp.next.next; } } • Two conditions possible • Value stored at first node • Change only Head • Value stored other than first node • -find node that contain value and then delete it. Quratulain Rajput
Update item of a list • Homework Public updateItem(int v, int x); Quratulain Rajput