#include #include #include #include struct elem { char bukv; elem *nx; }; void add(elem **t, elem **h, char info) // добавление элемента в очередь { elem *buff; if(!(buff=(elem*)calloc(1,sizeof(elem)))) return; //push(&buff->bukv,info); buff->bukv=info; if(!*t) *t=*h=buff; else {(*t)->nx=buff; *t=buff;} } void delMatches(char *str) // удаление повторяющихся символов { elem *t,*h,*c, *n, *pr; char cur; t=h=NULL; int i; for(i=0;inx) { pr=c; n=c->nx; while(n) // просмотр следующих за с элементов очереди { if(n->bukv == c->bukv) // если нашли совпадение { // удалаем pr->nx=n->nx; free(n); n=pr->nx; } else { // нет - проходим мимо pr=n; n=n->nx; } } } n=h; while(n) // выводим на экран { printf("%c",n->bukv); n=n->nx; } } int main() { setlocale(LC_ALL,"rus"); char *str; str=(char*)malloc(50); puts("введите слово"); gets(str); str=(char*)realloc(str,strlen(str)+1); delMatches(str); getch(); return 0; }