3 Commits

  1. 1
      .gitignore
  2. 35
      SongList.java

1
.gitignore

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

35
SongList.java

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

Loading…
Cancel
Save