dublikate ausfiltern

also danke für den hinweis, also ptrv = first; und die while schleife gehören natürlich weg! am besten hilft mir natürlich ein code, aber irgendwie ist mein stolz zu hoch um einen ganzen code zu bekommen!

aber um ehrlich zu sein, ich brauch einen code, damit ich einmal sehen kann wie es vl geht! weil wenn ich es einmal sehe, dann kann ich eh meinen eigenen schreiben!
 
Zuletzt bearbeitet:
C:
PLAYLIST* ptr1 = letzteEingetragenePlaylist;
while(ptr1 != NULL)
{
    PLAYLIST* ptr2 = letzteEingetragenePlaylist;
    while(ptr2 != NULL)
    {
        if(ptr1==ptr2) continue;
        //vergleiche ptr2 mit ptr1
        ptr2=ptr2->next;
    }
    ptr1=ptr1->next;
}

Oder etwas einfacher (& effizienter):
C:
PLAYLIST* entry1;
for (entry1 = first; entry1; entry1 = entry1->next) {
  PLAYLIST* entry2;
  for (entry2 = entry1->next; entry2; entry2 = entry2->next) {
    // vergleiche entry1 mit entry2
  }
}

Im übrigen stimme ich dir zu: erst einmal eine einfache verkettete Liste in einem separaten Projekt zu implementieren halte ich für eine gute Idee.

@Heinzi1991: Versuche dich mal an dieser Vorlage:

C:
#include <stdio.h>
#include <stdlib.h>

typedef struct song {
  int data;
  struct song* next;
} PLAYLIST;

// Neue Playlist erzeugen
PLAYLIST* playlist_create(int data) {
  PLAYLIST* list = malloc(sizeof(PLAYLIST));
  list->data = data;
  list->next = NULL;
  return list;
}

// Neuen Eintrag an das Ende der Playlist anhängen
PLAYLIST* playlist_append(PLAYLIST* list, int data) {
  // ...
}

// Sämtlichen Speicher für die Playlist freigeben
void playlist_destroy(PLAYLIST* list) {
  // ...
}

// Testet deine Implementierung: sollte "1 2 3 4 5" ausgeben.
int main(void) {
  PLAYLIST* list = playlist_create(1);
  playlist_append(list, 2);
  playlist_append(list, 3);
  playlist_append(list, 4);
  playlist_append(list, 5);
  
  PLAYLIST* entry;
  for (entry = list; entry; entry = entry->next) {
    printf("%d ", entry->data);
  }
  
  playlist_destroy(list);
  return 0;
}
playlist_create ist schon fertig, playlist_append und playlist_destroy sollst du implementieren.

Grüße,
Matthias
 
Hallo

Bitte gib dir etwas Mühe beim Schreiben, so wie wir uns Mühe geben, dir zu helfen. Gross-/Kleinschreibung und korrekte Interpunktion macht vieles angenehmer zu lesen.
Dazu bitte auch die Netiquette einhalten.

Und sei bitte etwas konkreter. Wenn wir jedes Mal nachfragen müssen, was genau denn das Problem ist, zieht das hier schlimmer Fäden als ein alter Kaugummi.

Matthias schrieb dir eine Vorlage für eine Klasse, die verkettete Listen "handelt" (engl.). Doch damit du auch etwas davon hast, hat er dir die Implementierung der Methoden append und destroy überlassen. Mache diese Klasse, dann wird auch das .m3u-Auslesen einfacher.

Darf man fragen, was denn dein bisheriger Wissensstand in C/C++ ist?

Gruss
cwriter
 
Zurück