|
|
|
@ -36,15 +36,19 @@ public class SongList { |
|
|
|
m_last = to_add; |
|
|
|
m_last.setLink(m_last); |
|
|
|
} |
|
|
|
else if (m_last.getTitle().compareTo(title) <= 0) { |
|
|
|
to_add.setLink(m_last.getLink()); |
|
|
|
m_last.setLink(to_add); |
|
|
|
m_last = to_add; |
|
|
|
} |
|
|
|
else { |
|
|
|
Song current = m_last.getLink(); |
|
|
|
while ((current.getTitle().compareTo(title)) > 0 && (current.getLink() != m_last)) { |
|
|
|
// start from last song |
|
|
|
Song current = m_last; |
|
|
|
while (title.compareTo(current.getLink().getTitle()) >= 0) { |
|
|
|
current = current.getLink(); |
|
|
|
} |
|
|
|
to_add.setLink(current.getLink()); |
|
|
|
current.setLink(to_add); |
|
|
|
if (current.getTitle().compareTo(to_add.getTitle()) > 0) |
|
|
|
m_last = null; |
|
|
|
} |
|
|
|
m_numElements += 1; |
|
|
|
} |
|
|
|
@ -55,12 +59,25 @@ public class SongList { |
|
|
|
Song current = m_last; |
|
|
|
if (current == null) |
|
|
|
return false; |
|
|
|
while ((current.getLink().getTitle().compareTo(title) != 0) && (current.getLink().getArtist().compareTo(artist) != 0)) { |
|
|
|
if (current.getLink() == m_last) |
|
|
|
return false; |
|
|
|
|
|
|
|
while ((current.getLink().getTitle().compareTo(title) != 0) && (current.getLink().getArtist().compareTo(artist) != 0) && (current.getLink() != m_last)) { |
|
|
|
current = current.getLink(); |
|
|
|
} |
|
|
|
current.setLink(current.getLink().getLink()); |
|
|
|
if (current.getLink() == m_last) { |
|
|
|
if ((m_last.getTitle().compareTo(title) == 0) && (m_last.getArtist().compareTo(artist) == 0)) { |
|
|
|
current.setLink(m_last.getLink()); |
|
|
|
if (current.getTitle().compareTo(current.getLink().getTitle()) >= 0) |
|
|
|
m_last = current; |
|
|
|
else |
|
|
|
m_last = current.getLink(); |
|
|
|
} |
|
|
|
else |
|
|
|
return false; |
|
|
|
} |
|
|
|
else { |
|
|
|
current.setLink(current.getLink().getLink()); |
|
|
|
} |
|
|
|
m_numElements -= 1; |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
@ -74,7 +91,7 @@ public class SongList { |
|
|
|
new_list.add(artist, current.getTitle()); |
|
|
|
return new_list; |
|
|
|
} |
|
|
|
while (current.getLink() != m_last) { |
|
|
|
for (int i = 0; i < size(); i++) { |
|
|
|
if (current.getArtist().compareTo(artist) == 0) |
|
|
|
new_list.add(artist, current.getTitle()); |
|
|
|
current = current.getLink(); |
|
|
|
|