Add IndexOf method to SinglyLinkedList

pull/69/head
Mahadev 8 years ago
parent f246a54621
commit e709a4b5ea

@ -154,6 +154,18 @@ func (list *List) Values() []interface{} {
return values return values
} }
//IndexOf returns index of provided element
func (list *List) IndexOf(value interface{}) int{
if list.size == 0 {
return -1
}
for index, element := range list.Values() {
if element == value {
return index
}
}
return -1
}
// Empty returns true if list does not contain any elements. // Empty returns true if list does not contain any elements.
func (list *List) Empty() bool { func (list *List) Empty() bool {
return list.size == 0 return list.size == 0

@ -133,6 +133,33 @@ func TestListValues(t *testing.T) {
} }
} }
func TestListIndexOf(t *testing.T) {
list := New()
expectedIndex := -1
if index := list.IndexOf("a"); index != expectedIndex{
t.Errorf("Got %v expected %v",index,expectedIndex)
}
list.Add("a")
list.Add("b", "c")
expectedIndex = 0
if index := list.IndexOf("a"); index != expectedIndex{
t.Errorf("Got %v expected %v",index,expectedIndex)
}
expectedIndex = 1
if index := list.IndexOf("b"); index != expectedIndex{
t.Errorf("Got %v expected %v",index,expectedIndex)
}
expectedIndex = 2
if index := list.IndexOf("c"); index != expectedIndex{
t.Errorf("Got %v expected %v",index,expectedIndex)
}
}
func TestListInsert(t *testing.T) { func TestListInsert(t *testing.T) {
list := New() list := New()
list.Insert(0, "b", "c") list.Insert(0, "b", "c")

Loading…
Cancel
Save