Dzięki _13th_Dragon, link, ktory podeslales bardzo sie przydał. Tymczasem mam jeszcze jeden problem. Mam napisać porgram, który zawiera pewne funkcje , a pozniej je testuje. na razie mam te funkcje, ale dzialam troche na oslep i juz nie wiem co jest nie tak. prosze o podpowiedz;) (Wiem, ze po angielsku lepiej, ale one musza sie tak nazywac a nie bede zmieniac nazw na potrzeby forum. I musza to byc funkcje z tymi parametrami). Funkcję makenode dodalam do tego co mialam zrobic , bo jest potrzebna w funkcji dodajacej element.
#include <stdio.h>
#include <stdlib.h>
typedef struct ElemListy {
int wartosc;
struct ElemListy *nast;
} ElemListy;
typedef struct Lista {
ElemListy *poczatek;
ElemListy *koniec;
} Lista;
void ZainicjujListe(Lista *l){
l->poczatek = NULL;
l->koniec = NULL;
}
ElemListy *makenode(int wartosc, ElemListy *next)
{
ElemListy tmp=(ElemListy)malloc(sizeof(node));
tmp -> wartosc = wartosc;
tmp->nast = nast;
return tmp;
}
void Wyswietl(Lista *l){
ElemListy *i;
printf("{ ");
for(i = l->poczatek; i; i = i->nast)
printf("%d ", i->wartosc);
printf("}\n");
}
void DodajNaPoczatku(Lista *l, int k){
ElemListy *tmp = makenode(k,l->poczatek);
if(!l->koniec) l->koniec = tmp;
l->poczatek = tmp;
}
void DodajNaKoncu(Lista *l, int k){
ElemListy *tmp = makenode(k, NULL);
if(l->koniec) l->koniec->nast = tmp;
else l->poczatek = tmp;
l->koniec = tmp;
}
void UsunPoczatek(Lista *l){
ElemListy tmp = l;
if (l != NULL){
l = l->nast;
free(tmp);
}
void UsunKoniec(Lista *l){
tmp = l->poczatek
ElemListy *t;
while(tmp->nast != NULL){
t = tmp;
tmp = tmp->nast;
}
free(t->nast);
t->nast = NULL;
}