ВУЗ:
Составители:
Рубрика:
ссылаются элементы,списки бывают однородные и неоднородные.
Определим универсальный указатель:
typedef void* ent;
Элемент списка определим как класс с двумя дружественными
классами:список и оператор списка,которые определим позже:
class slink /*-элемент односвязного списка: */
{ /* ┌───────┐ ┌ ─ ─ ─ ┐ */
/* │ next ├──Ў next ─ ─ Ў */
/* ├───────┤ ├ ─ ─ ─ ┤ */
/* │ e │ e */
/* └───┬───┘ └ ─ ┬ ─ ┘ */
/* │ */
/* · · */
/* */
friend class slist; /*-дружественные */
friend class slist_iterator;/* классы; */
slink* next; /*-на последующий элемент; */
ent e; /*-указатель поля данных; */
slink(ent a, slink* p) /*-конструктор звена; */
{ e=a; next=p; }
};/*-конец определения односвязного списка; */
Обратите внимание,что все члены класса,в том числе и его
конструктор,являются личными private.
Циклический односвязный список с одним фиксатором и четырь-
мя операциями:включить в начало,добавить в конец,выбрать с
удалением и очистить - определим следующим образом:
class slist /*-циклический односвязный список: */
{ friend class slist_iterator;/*дружественный класс;*/
slink* last;/*-фиксатор списка,определяющий */
/* его последний элемент; */
public:
int insert(ent a);/*-включить элемент в начало*/
int append(ent a);/*-добавить элемент в конец;*/
59
ссылаются элементы,списки бывают однородные и неоднородные. Определим универсальный указатель: typedef void* ent; Элемент списка определим как класс с двумя дружественными классами:список и оператор списка,которые определим позже: class slink /*-элемент односвязного списка: */ { /* ┌───────┐ ┌ ─ ─ ─ ┐ */ /* │ next ├──Ў next ─ ─ Ў */ /* ├───────┤ ├ ─ ─ ─ ┤ */ /* │ e │ e */ /* └───┬───┘ └ ─ ┬ ─ ┘ */ /* │ */ /* · · */ /* */ friend class slist; /*-дружественные */ friend class slist_iterator;/* классы; */ slink* next; /*-на последующий элемент; */ ent e; /*-указатель поля данных; */ slink(ent a, slink* p) /*-конструктор звена; */ { e=a; next=p; } };/*-конец определения односвязного списка; */ Обратите внимание,что все члены класса,в том числе и его конструктор,являются личными private. Циклический односвязный список с одним фиксатором и четырь- мя операциями:включить в начало,добавить в конец,выбрать с удалением и очистить - определим следующим образом: class slist /*-циклический односвязный список: */ { friend class slist_iterator;/*дружественный класс;*/ slink* last;/*-фиксатор списка,определяющий */ /* его последний элемент; */ public: int insert(ent a);/*-включить элемент в начало*/ int append(ent a);/*-добавить элемент в конец;*/ 59
Страницы
- « первая
- ‹ предыдущая
- …
- 57
- 58
- 59
- 60
- 61
- …
- следующая ›
- последняя »