#include typedef char Dane; struct lista_dwa { Dane d; struct lista_dwa *nast,*pop; }; typedef struct lista_dwa Element2; typedef Element2 *Lista2; Lista2 napis_na_liste(char *s) { Lista2 el,pocz=NULL,lst; if(*s) { pocz=malloc(sizeof(Element2)); pocz->d=*s; pocz->nast=NULL; pocz->pop=NULL; lst=pocz; while(*++s) { lst->nast=malloc(sizeof(Element2)); lst->nast->pop=lst; lst=lst->nast; lst->d=*s; lst->nast=NULL; } } return pocz; } void zamien(Lista2 el1, Lista2 el2) { char c; c=el1->d; el1->d=el2->d; el2->d=c; } int il_el(Lista2 lst) { Lista2 tmp; int i; tmp=lst; if(!tmp) return 0; for(i=0;tmp->nast;i++,tmp=tmp->nast); return ++i; } Lista2 sort(Lista2 lst) { Lista2 tmp; int k,i=il_el(lst); for(k=0;knast) { if((tmp->d)>(tmp->nast->d)) zamien(tmp->nast,tmp); tmp=tmp->nast; } } return lst; } main() { char napis[100]="siemxfgjzbmdgzdkah"; Lista2 lst2,e1,e2; lst2=napis_na_liste(napis); printf("%d\n",il_el(lst2)); lst2=sort(lst2); printf("%d\n",il_el(lst2)); do { printf("%c",lst2->d); lst2=lst2->nast; } while(lst2); getch(); }