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
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;
}