#4 21.03.07 19:25
Re: Списки. Реализация на Си.
односвязный список:
Код: C:
struct elem { int val; elem *next; }
добавление:
Код: C:
void add(int v, elem *&head) { elem *tmp=head,*t=new elem; t->val=v;t->next=NULL; if(head==NULL) { head=t;head->next=NULL;return; } while(tmp->next!=NULL) tmp=tmp->next; tmp->next=t; }
Исправлено kvazimodo (21.03.07 19:29)
Offline
#5 21.03.07 19:28
Re: Списки. Реализация на Си.
включение с сохранением порядка:
Код: C:
void insert(int v, elem *&head) { elem *q ,*pr,*p; q=new elem; q->val=v;q->next=NULL; for(p=head,pr=NULL; p!=NULL && obj>p->val; pr=p,p=p->next); if(pr==NULL) { q->next=head; head=q; } else { q->next=p;pr->next=q; } }
Offline
#6 21.03.07 19:32
Re: Списки. Реализация на Си.
включение на заданную позицию:
Код: C:
void insert(int v, int pos, elem *&head) { elem *tmp,*pr,*el=NULL; int i; for(i=1,tmp=head;i<pos && tmp->next!=NULL;i++) { pr=tmp; tmp=tmp->next; } if(tmp->next==NULL && i<pos) { printf("No such position\n"); return; } else { el=new elem;el->val=v;el->next=NULL; el->next=tmp; pr->next=el; } }
Исправлено kvazimodo (21.03.07 19:35)
Offline
#7 21.03.07 19:34
Re: Списки. Реализация на Си.
удаление:
Код: C:
void del(int pos, elem *&head) { elem *tmp,*pr; tmp=head; for(int i=1;i<pos;i++){ pr=tmp;tmp=tmp->next; } pr->next=tmp->next; delete tmp; }
Offline
#10 22.03.07 18:44
Re: Списки. Реализация на Си.
Дональдак, ну, наверное, примерно вот так:
Код: C:
void del(int v, elem *&head) { elem *tmp,*pr; for(tmp=head;tmp->val!=v; ){ pr=tmp;tmp=tmp->next; } if(tmp==NULL){ pr->next=NULL;return; } pr->next=tmp->next; delete tmp; }
тока удалится(если удалится %)) первый с таким значением элемент...
Исправлено kvazimodo (22.03.07 18:50)
Offline
#11 22.03.07 18:46
#12 22.03.07 21:47
#13 23.03.07 07:41
Re: Списки. Реализация на Си.
Karminsky написал(а):
Односвязные \ двусвязные.
Функции инициализации, удаления, добавления элемента.
Есть у кого-нибудь? Лень писать. :)
У меня есть 5 лаб и курсовая по спискам, надо будет пиши в приват, скину те куда-ть, либо выложу на ФТП и скачаешь...
Исправлено Rybak (23.03.07 07:43)
Offline

