Skip to content

Java Link List Implementation

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
//**************************************************************
// Link list representation in Java. 
//**************************************************************
public class LinkList{
   static Node list;
   static int size = 0;
   public void add(String str){
	// Yeni bir node oluşturuyoruz
	Node node = new Node(str);
	Node current=null;
	if(list==null)
	     list = node;
	 else{
	     //Listenin sonuna yeni nodumuzu eklemek için
	     //Listenin sonuna kadar while loop u ile gidiyoruz
	     //Sonuna geldiğimizde ise next i ni node yaparak
	     //eklemiş oluyoruz.
	     current = list;
	     while(current.next !=null)
	     current = current.next;
	     current.next = node;
	}
	size++;
    }
    public void delete(int index){
	Node current = list;
	//Silinecek olan nodun bir öncesine gidebilmek için
	for(int i=0;i<index-1;i++)
	    current = current.next;
	//Buda nodu atlayarak silmek için
	current.next = current.next.next;
	size--;
    }
    public void insert(int index,String str){
	Node node = new Node(str);
	Node current = list;
	if(index==0){
	    node.next = current;
	list = node;
    }
    else{
	//Insert edilecek yerin bir öncesine gidebilmek için
	for(int i=0;i<index-1;i++)
	    current = current.next;
	//Insert edilecek nodu orada başka bir node olduğu için 
	//bunu geçici olarak başka bir node la tutmalıyız
	//Onun için temp adında geçici bir Haha node
	// oluşturup current.next e eşitliyoruz.
	Node temp = current.next;
	//Current.next e yeni objemizi arayarak istediğimiz
	// index insert etmiş oluyoruz
	current.next = node;
	//temp ile tuttuğumuz kalanlarıda current.next.next'e
	// eşitleyecek olursak ki
	// bir sonraki elemana kalanı atamış olucaz
	current.next.next= temp;
     }
	size++;
   }
   public String toString(){
	//Nodeları tek tek gezip yazması için yaptığımız
	//bir while loop u
	Node current = list;
	String str = "";
	if(current==null)
	    return str;
	else{
	    //her seferinde bir sonrakinin null olup olmadığına
	    //bakıp bulunduğumuz nodu yazdırıyoruz.
	    while(current.next!=null){
		str += current.haha+"\t";
		current = current.next;
	    }
	     str += current.haha+"\t";
        }
        return str;
    }
    public class Node{
        //Node objesi
        //Haha class ının objesini kullanıyor
        Node next;
        Haha haha;
       public Node(String str){
	   haha = new Haha(str);
	   next = null;
       }
    }
    public class Haha{
       //Bir Haha objesi
       String haha = "";
       public Haha(String str){
           haha = str;
       }
    }
}

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *