Anda di halaman 1dari 9

NAME: SOUMYADEEP BOSE CLASS: XII SEC: A ROLL: 137/2010 SUBJECT: PROGRAMS ON DATA STRUCTURE

PROGRAM TO INSERT A NODE IN A SORTED LIST CODE:

import java.io.*; class Node //this class implements node// { protected int data; protected Node link; Node()//default constructor// { link=null; data=0; } Node(int d,Node n) { data=d; link=n; } void setlink(Node n) { link=n;} void setData(int d) { data=d;} Node getlink(){return link;} int getData(){ return data;} } class linkedList { protected Node start; linkedList() { start=null;} boolean isEmpty(){ return start==null;} void Insert(int val){ Node nptr,ptr,save=null; nptr=new Node(val,null); boolean ins=false; if(start==null) start=nptr; else if(val<=start.getData()){nptr.setlink(start); start=nptr; } else { save=start; ptr=start.getlink(); while(ptr!=null) { if(val>=save.getData() && val<=ptr.getData()){save.setlink(nptr); nptr.setlink(ptr); ins=true; break; } else{save=ptr; ptr=ptr.getlink(); } } if(ins==false) { save.setlink(nptr); } } } void display(){ Node ptr=start; System.out.print(start.getData()+"-->"); ptr=start.getlink(); while(ptr.getlink()!=null){System.out.print(ptr.getData()+"-->"); ptr=ptr.getlink(); } System.out.print(ptr.getData()+"!!!!"); System.out.println(); } } class linkListTest{ protected static linkedList S; static void main(String args[]){ int num; S=new linkedList(); BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); System.out.println(".......Startin test for INSERTION...........\n"); for(int a=0;a<5;++a) { System.out.print("Enter a number:"); try{ num=Integer.parseInt(br.readLine()); S.Insert(num); System.out.println("Tnserted:"+num); } catch(Exception e) { System.out.println(e); } } System.out.println("\n Created List is:"); S.display(); System.out.println("\n-------List Test Over--------"); } }

Input-output: . Starting List Test for INSERTION

Enter a number: 5 Inserted: 5 Enter a number: 3 Inserted: 3 Enter a number: 8 Inserted: 8 Enter a number: 9 Inserted: 9 Enter a number: 2 Inserted: 2 Created list is: 23589!!! -------List Test Over-------ALGORTIHM: 1. ptr=START 2. NEWPTR=new Node 3. If NEWPTR=NULL 4. print No Space Availabe! Aborting!! 5. else{ 6. NEWPTR.INFO=ITEM 7. NEWPTR.LINK=NULL 8. If START=NULL then 9. START=NEWPTR 10. elseif ITEM<START.INFO then{ 11. Save=START 12. START=NEWPTR 13. NEWPTR.LINK=Save} 14. Save=Start 15. Repeat steps 16 through 22 until ptr=NULL 16. if NEWPTR.INFO>ptr.INFO then{ 17. Save=ptr 18. ptr=ptr.LINK} 19. else{ 20. Save.LINK=NEWPTR 21. NEWPTR.LINK=ptr 22. break} 23. if ptr=NULL then{ 24. Save.LINK=NEWPTR 25. NEWPTR.LINK=NULL}} 26. END PROGRAM TO DELETE A NODE IN A LIST CODE import java.io.*; class Node { protected int data; protected Node link; Node()//default constructor// { link=null; data=0; } Node(int d,Node n) { data=d; link=n; } void setlink(Node n) { link=n;} void setData(int d) { data=d;} Node getlink(){return link;} int getData(){ return data;} } class linkedList { protected Node start; public linkedList() { start=null; } public boolean isEmpty(){ return start==null; } void Insert(int val) { Node nptr,ptr,save=null; nptr=new Node(val,null); boolean ins=false; if(start==null) start=nptr; else if(val<=start.getData()){nptr.setlink(start); start=nptr; } else { save=start; ptr=start.getlink(); while(ptr!=null) { if(val>=save.getData() && val<=ptr.getData()){save.setlink(nptr); nptr.setlink(ptr); ins=true; break; } else{save=ptr; ptr=ptr.getlink(); } } if(ins==false)

{ save.setlink(nptr); } } } public Boolean Delete(int val) { Boolean res=false; if(start.getData()==val) { start=start.getlink(); res=true; } else{ Node ptr,save; save=start; ptr=start.getlink(); while(ptr!=null) { if(ptr.getData()==val) { Node next=ptr.getlink(); save.setlink(next); res=true; break; } else { save=ptr; ptr=ptr.getlink(); } } } return res; } void display() { Node ptr=start; System.out.print(start.getData()+"-->"); ptr=start.getlink(); while(ptr.getlink()!=null){System.out.print(ptr.getData()+"-->"); ptr=ptr.getlink(); } System.out.print(ptr.getData()+"!!!!"); System.out.println(); } } class linkListTest { protected static linkedList S; static void main(String args[]) { int num; S=new linkedList(); BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); System.out.println("..........Starting List Test for DELETION.........\n"); for(int a=0;a<5;++a) { System.out.print("Enter a number:"); try { num=Integer.parseInt(br.readLine()); S.Insert(num); } catch(Exception e) { System.out.println(e); } } System.out.print("Enter number to be deleted:"); try { num=Integer.parseInt(br.readLine()); Boolean res=S.Delete(num); if(res==true) System.out.println(num+"deleted successfully"); else System.out.println("Sorry!No such number found in the list"); } catch(Exception e) { System.out.println(e); } System.out.println("\n Now+ the List is:"); S.display(); System.out.println("\n-----------List Test Over-----------"); } } INPUT-OUTPUT: Starting List Test for DELETION.. Enter a number: 5 Enter a number: 2 Enter a number: 7 Enter a number: 4 Enter a number: 9 Enter number to be deleted: 5 5 deleted successfully Now the List iis: 2479!!!! ------------List Test Over--------ALGORTIHM: 1. save=start,ptr=start

2. Repeat step 3 through 7 until ptr=NULL 3. If ptr.INFO==ITEM then 4. break 5. else{ 6. save=ptr 7. ptr=ptr.LINK} 8. if ptr==NULL then 9. print Item not found !! 10. else{ 11. if ptr == start then 12. start ptr.LINK 13. else 14. Save.LINK=ptr.LINK} 15. END PROGRAM TO TRAVERSE A LINKED LIST CODE: import java.io.*; class Node { protected int data; protected Node link; Node()//default constructor// { link=null; data=0; } Node(int d,Node n) { data=d; link=n; } void setlink(Node n) { link=n;} void setData(int d) { data=d;} Node getlink(){return link;} int getData(){ return data;} } class linkedList { protected Node start; public linkedList() { start=null; } public boolean isEmpty() { return start==null; } public void Insert(int val) { Node nptr,ptr,save=null; nptr=new Node(val,null); boolean ins=false; if(start==null) start=nptr; else if(val<=start.getData()){nptr.setlink(start); start=nptr; } else { save=start; ptr=start.getlink(); while(ptr!=null) { if(val>=save.getData() && val<=ptr.getData()){save.setlink(nptr); nptr.setlink(ptr); ins=true; break; } else{save=ptr; ptr=ptr.getlink(); } } if(ins==false) { save.setlink(nptr); } } } void Traverse() { Node ptr=start; System.out.print(start.getData()+"-->"); ptr=start.getlink(); while(ptr.getlink()!=null) { System.out.print(ptr.getData()+"==>"); ptr=ptr.getlink(); } System.out.print(ptr.getData()+"!!!!"); System.out.println(); } } class linkedListTest { protected static linkedList S; static void main(String args[]) { int num; S=new linkedList(); BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

System.out.println(".......Starting List test for TRAVERSAL......\n"); for(int a=0;a<7;++a) { System.out.print("Enter a number:"); try { num=Integer.parseInt(br.readLine()); S.Insert(num); } catch(Exception e) { System.out.println(e); } } System.out.println("\n Now the List is:"); S.Traverse(); System.out.println("\n----List Test Over----"); } } INPUT-OUTPUT: ..Starting List Test for TRAVERSAL.. Enter a number: 6 Enter a number: 8 Enter a number: 2 Enter a number: 4 Enter a number: 1 Enter a number: 9 Enter a number: 8 Now the List is : 1246889!!!! --------List Test Over-----------ALGORITHM 1. ptr=start 2. Repeat steps 3 and 4 until ptr=NULL 3. print ptr.INFO 4. ptr=ptr.LINK 5. END PROGRAM TO SEARCH FOR AN ITEM IN A LINKED LIST CODE: import java.io.*; class Node { protected int data; protected Node link; Node()//default constructor// { link=null; data=0; } Node(int d,Node n) { data=d; link=n; } void setlink(Node n) { link=n;} void setData(int d) { data=d;} Node getlink(){return link;} int getData(){ return data;} } class linkedList { protected Node start; public linkedList() { start=null; } public boolean isEmpty() { return start==null; } public void Insert(int val) { Node nptr,ptr,save=null; nptr=new Node(val,null); boolean ins=false; if(start==null) start=nptr; else if(val<=start.getData()){nptr.setlink(start); start=nptr; } else { save=start; ptr=start.getlink(); while(ptr!=null) { if(val>=save.getData() && val<=ptr.getData()){save.setlink(nptr); nptr.setlink(ptr); ins=true; break; } else{save=ptr; ptr=ptr.getlink(); } } if(ins==false) {

save.setlink(nptr); } } } public void Traverse() { Node ptr=start; System.out.print(start.getData()+"-->"); ptr=start.getlink(); while(ptr.getlink()!=null) { System.out.print(ptr.getData()+"==>"); ptr=ptr.getlink(); } System.out.print(ptr.getData()+"!!!!"); System.out.println(); } } public void Search(int val) { Node ptr=start; int pos=1; while(ptr!=null) { if(ptr.getData()==val) { system.out.println("Item "+val+"found at position"+pos); break; } else { ptr=ptr.getlink(); pos++; } } if(ptr==null) { System.out.println("Ttem"+val+"is not in the list"); } } } class linkListTest { protected static linkedList S; static void main(String args[]) { int num; S=new linkedList(); BufferedReader br=new BufferedReader(new+ inputStreamReader(System.in)); System.out.println("........Starting list Test for SEARCHING........\n"); for(int a=0;a<7;++a) { System.out.print("Enter a number:"); try { num=Integer.parseInt(br.readLine()); S.Insert(num); } catch(Exception e) { System.out.println(e); } } System.out.println("\n Now the List is:"); S.Traverse(); System.out.print("\n\nEnter number to be searched for:"); try { num=Integer.parseInt(br.readLine()); S.Search(num); } catch(Exception e) { System.out.println(e); } System.out.println("\n----List Test Over----"); } } } INPUT-OUTPUT: Starting List Test for SEARCHING Enter a number: 6 Enter a number: 3 Enter a number: 90 Enter a number: 4 Enter a number: 3 Enter a number: 35 Enter a number: 17 Now th List is: 3346173590!!!! Enter number to be searched for:17 Item 17 found at position 5 ----------List Test Over------------

ALGORITHM 1. Set ptr=START,pos=0

2. 3. 4. 5. 6. 7. 8. 9.

Repeat steps 3 through 7 until ptr=NULL IF ITEM=ptr.INFO then{ pos=pos+1 print ITEM,found at node,pos break} ptr=ptr.LINK If ptr=NULL then print unsuccessful search!! END

PROGRAM TO MATCH PARENTHESES IN A GIVEN EXPRESSION CODE: class parenmatch { static void main printMatchedPairs(String expr) { arrayStackInt s=new arrayStackInt(25); int length=expr.length(); for(int i=0;i<length;i++) { if*expr.charAt(i)=='(') s.push(new Integer(i)); else if(expr.charAt(i)==')') try { int j=s.pop(); System.out.println("The ) at index"+i+"matched with ( at index"+j); } catch(Exception e) { System.out.println("The ) at index+"i+"is UNMATCHED!!"); } while(!s.isEmpty()) { System.out.println("The ) at index "+s.pop()+" is UNMATCHED!!"); } } static void main(String args[]) { System.out.println("Analysing expression:(x+(y-z)*w)"); printMatchedPairs("x+(y-z)*w)"); System.out.println("Analysing expression:((a+b/c-d))"); printMatchedPairs("((a+b/c-d))"); } } class arrayStackInt { protected int Stack[]; protected int ctr; public arrayStackInt(int capacity) { Stack=new int[capacity]; ctr=-1; } public boolean isEmpty() { return ctr==-1; } public void push(int i) { if(ctr+1<Stack.length) Stack[++ctr]=i; } public int pop() { if(isEmpty()) return 0; return Stack[ctr--]; } } Analysing expression: (x+(y-z)*w) The) at index 7 matched with (at index 3 The) at index 10 matched with (at index 0 Analysing expression: ((a+b/c-d)) The) at index 10 matched with (at index 6 The) at index 10 matched with (at index 6 The) at index 10 matched with (at index 6 ALGORTIHM: Scan the expression left to right. If left parenthesis is encountered, push it in a stack If right parenthesis is encountered, pop from stack If an underflow occurs, it means there are unmatched right parentheses in the expression. In the end,if non-empty stack is left, it means that are unmatched left parentheses in the expression.

1. 2. 3. 4. 5.

Anda mungkin juga menyukai