3 Commits

  1. 1
      .gitignore
  2. 35
      SongList.java

1
.gitignore

@ -1,2 +1,3 @@
/meghanadaFormatter.xml
*.class
*.jgrasp_canvas.xml

35
SongList.java

@ -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();

Loading…
Cancel
Save