13.01.2015 Views

Объектно-ориентированное программирование на С++ - eDrive

Объектно-ориентированное программирование на С++ - eDrive

Объектно-ориентированное программирование на С++ - eDrive

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

54<br />

TQueue *q = new TQueue;<br />

for (int i=0; iPush (a[i].c_str());<br />

b += AnsiString (q–>Count ()) + ' ' + (char*) q–>Peek () + '\n';<br />

} // 0 1 Иванов 2 Иванов 3 Иванов<br />

while (q–>AtLeast (1))<br />

b += AnsiString (q–>Count ()) + ' ' + (char*) q–>Pop () + '\n';<br />

ShowMessage (b + '0'); // 3 Иванов 2 Петров 1 Сидоров 0<br />

}<br />

void SimpleQueue () {<br />

TQueue *vQueue = new TQueue;<br />

vQueue–>Push ("Пеpвое ");<br />

vQueue–>Push ("Втоpое ");<br />

vQueue–>Push ("Тpетье ");<br />

ShowMessage ("Добавили " + AnsiString (vQueue–>Count ()));<br />

vQueue–>Pop ();<br />

ShowMessage ("Осталось " + AnsiString (vQueue–>Count ()));<br />

}<br />

Списком <strong>на</strong>зывается ди<strong>на</strong>мическая структура, в которой поддерживаются<br />

помещение и выборка данных в произвольных позициях. Каждый член<br />

списка, именуемый узлом (node), содержит поле данных и поле–указатель<br />

следующего узла. Список <strong>на</strong>зывают линейным (linear list), если обход его выполняется<br />

только в одном <strong>на</strong>правлении – от предшествующего узла к последующему,<br />

<strong>на</strong>чи<strong>на</strong>я с первого узла и кончая последним. Список <strong>на</strong>зывают<br />

циклическим (cyclic list), если последний узел его содержит указатель <strong>на</strong> первый<br />

узел; в нем обход выполняется также в одном <strong>на</strong>правлении, но из любого<br />

узла можно перейти в любой другой узел. Пример:<br />

void MyList () {<br />

TList *vList = new TList ();<br />

AnsiString item = "что-то есть";<br />

try {<br />

vList–>Add (item.c_str ());<br />

ShowMessage ("В списке " + IntToStr (vList–>Count));<br />

vList–>Remove (item.c_str ());<br />

ShowMessage ("В списке " + IntToStr (vList–>Count));<br />

}<br />

catch (...) { delete vList; throw; }<br />

delete vList;<br />

}

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!