Zadanie z listy dynamicznej dwukierunkowej

0

Mam następujące zadanie do rozwiązania(w języku C) i nie wiem jak się za nie zabrać proszę o szybką pomoc:
Napisz program wczytujący z plikutekstowego słowa. Każdy wiersz pliku zawiera jedno słowo. Korzystając z funkcji fscanf wczytaj zawartość pliku do listy dynamicznej dwukierunkowej. Każdy element listy przechowuje jedno słowo. Słowa w pliku nie są uporządkowane alfabetycznie . Wczytując umieszczaj każde kolejne słowo w takim miejscu listy, aby na koniec wczytywania lista zawierała słowa uporządkowane w kolejności alfabetycznej. Po zakończeniu wczytywania wypisz na ekranie aktualną zawartość listy dynamicznej. Moja lista wygląda następująco(nie wiem czy jest dobrze napisana jeżeli coś jest źle to prosze o poprawienie):
struct wyraz{
char slowo[40];
struct wyraz *poprz;
struct wyraz *nast;
};
Następie należy napisać funkcje2 która dodaje do listy nowy element z uwzględnieniem posortowania. Oraz funkcje3 która wyświetli w oknie konsoli zawartość listy po wykonaniu funkcji2.Należy pamiętać o zwolnieniu zmiennych dynamicznych będących elementami listy na koniec działania programu.

0

No i gdzie masz problem?

0

Strukturę lepiej zrobić następująco:

struct word
  {
   struct word *prev,*next;
   char word[1];
  };

struct wordlist
  {
   struct word *first,*last;
  };
0

A czemu word ma tylko 1 znak?
Bo wystarczy, używamy następująco:

struct word *makeword(const char *str)
  {
   struct word *tmp;
   unsigned len;
   len=strlen(str);
   tmp=(struct word *)malloc(sizeof(struct word)+len);
   memcpy(tmp->word,str,len+1);
   tmp->prev=tmp->next=NULL;
   return tmp;
  }

1 użytkowników online, w tym zalogowanych: 0, gości: 1