25.07.2017 Views

Intro-CSharp-Book-v2015

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

676 Въведение в програмирането със C#<br />

}<br />

}<br />

Console.WriteLine(msg);<br />

Ето как изглежда изходът на примерната програма:<br />

Message One<br />

Message Two<br />

Message Three<br />

Message Four<br />

Вижда се, че елементите излизат от опашката в реда, в който са постъпили<br />

в нея.<br />

Редицата N, N+1, 2*N – пример<br />

Нека сега разгледаме задача, в която използването на структурата опашка<br />

ще бъде много полезна за реализацията. се получават по следния начин:<br />

първият елемент е N; вторият получаваме като съберем N с 1; третият –<br />

като умножим първия с 2 и така последователно умножаваме всеки елемент<br />

с 2 и го добавяме накрая на редицата, след което го събираме с 1 и отново<br />

го поставяме накрая на редицата. Можем да илюстрираме този процес със<br />

следната фигура:<br />

+1<br />

+1<br />

+1<br />

S = N, N+1, 2*N, N+2, 2*(N+1), 2*N+1, 4*N, ...<br />

*2<br />

*2<br />

*2<br />

Както виждаме, процесът се състои във взимане на елементи от началото<br />

на опашка и поставянето на други в края й. Нека сега видим примерна<br />

реализация, в която N=3 и търсим номера на член със стойност 16:<br />

public static void Main()<br />

{<br />

int n = 3;<br />

int p = 16;<br />

Queue queue = new Queue();<br />

queue.Enqueue(n);<br />

int index = 0;<br />

Console.WriteLine("S =");<br />

while (queue.Count > 0)<br />

{<br />

index++;<br />

int current = queue.Dequeue();<br />

Console.WriteLine(" " + current);

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

Saved successfully!

Ooh no, something went wrong!