<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="uk">
		<id>http://wiki.isofts.kiev.ua/index.php?action=history&amp;feed=atom&amp;title=%D0%9F%D0%BE%D1%88%D1%83%D0%BA_%D0%B2_%D0%B3%D1%80%D0%B0%D1%84%D1%96_%D0%B7_%D0%BA%D1%80%D0%B8%D1%82%D0%B5%D1%80%D1%96%D1%94%D0%BC_%D0%B2%D0%B0%D0%B3%D0%B8</id>
		<title>Пошук в графі з критерієм ваги - Історія редагувань</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.isofts.kiev.ua/index.php?action=history&amp;feed=atom&amp;title=%D0%9F%D0%BE%D1%88%D1%83%D0%BA_%D0%B2_%D0%B3%D1%80%D0%B0%D1%84%D1%96_%D0%B7_%D0%BA%D1%80%D0%B8%D1%82%D0%B5%D1%80%D1%96%D1%94%D0%BC_%D0%B2%D0%B0%D0%B3%D0%B8"/>
		<link rel="alternate" type="text/html" href="http://wiki.isofts.kiev.ua/index.php?title=%D0%9F%D0%BE%D1%88%D1%83%D0%BA_%D0%B2_%D0%B3%D1%80%D0%B0%D1%84%D1%96_%D0%B7_%D0%BA%D1%80%D0%B8%D1%82%D0%B5%D1%80%D1%96%D1%94%D0%BC_%D0%B2%D0%B0%D0%B3%D0%B8&amp;action=history"/>
		<updated>2026-04-08T11:04:54Z</updated>
		<subtitle>Історія редагувань цієї сторінки в вікі</subtitle>
		<generator>MediaWiki 1.25.3</generator>

	<entry>
		<id>http://wiki.isofts.kiev.ua/index.php?title=%D0%9F%D0%BE%D1%88%D1%83%D0%BA_%D0%B2_%D0%B3%D1%80%D0%B0%D1%84%D1%96_%D0%B7_%D0%BA%D1%80%D0%B8%D1%82%D0%B5%D1%80%D1%96%D1%94%D0%BC_%D0%B2%D0%B0%D0%B3%D0%B8&amp;diff=2339&amp;oldid=prev</id>
		<title>111: /* Допоміжний АРІ */</title>
		<link rel="alternate" type="text/html" href="http://wiki.isofts.kiev.ua/index.php?title=%D0%9F%D0%BE%D1%88%D1%83%D0%BA_%D0%B2_%D0%B3%D1%80%D0%B0%D1%84%D1%96_%D0%B7_%D0%BA%D1%80%D0%B8%D1%82%D0%B5%D1%80%D1%96%D1%94%D0%BC_%D0%B2%D0%B0%D0%B3%D0%B8&amp;diff=2339&amp;oldid=prev"/>
				<updated>2018-02-18T22:03:14Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Допоміжний АРІ&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Попередня версія&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версія за 22:03, 18 лютого 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L102&quot; &gt;Рядок 102:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Рядок 102:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;int isFullPQueue (pqueue_t *q_p );&amp;lt;/nowiki&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;int isFullPQueue (pqueue_t *q_p );&amp;lt;/nowiki&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Виконав Романів Роман'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Виконав &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;Романів Роман&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]]&lt;/ins&gt;'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>111</name></author>	</entry>

	<entry>
		<id>http://wiki.isofts.kiev.ua/index.php?title=%D0%9F%D0%BE%D1%88%D1%83%D0%BA_%D0%B2_%D0%B3%D1%80%D0%B0%D1%84%D1%96_%D0%B7_%D0%BA%D1%80%D0%B8%D1%82%D0%B5%D1%80%D1%96%D1%94%D0%BC_%D0%B2%D0%B0%D0%B3%D0%B8&amp;diff=2155&amp;oldid=prev</id>
		<title>111: /* Допоміжний АРІ */</title>
		<link rel="alternate" type="text/html" href="http://wiki.isofts.kiev.ua/index.php?title=%D0%9F%D0%BE%D1%88%D1%83%D0%BA_%D0%B2_%D0%B3%D1%80%D0%B0%D1%84%D1%96_%D0%B7_%D0%BA%D1%80%D0%B8%D1%82%D0%B5%D1%80%D1%96%D1%94%D0%BC_%D0%B2%D0%B0%D0%B3%D0%B8&amp;diff=2155&amp;oldid=prev"/>
				<updated>2018-02-16T22:32:07Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Допоміжний АРІ&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Попередня версія&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версія за 22:32, 16 лютого 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L101&quot; &gt;Рядок 101:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Рядок 101:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;int isEmptyPQueue (pqueue_t *q_p ); &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;int isEmptyPQueue (pqueue_t *q_p ); &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;int isFullPQueue (pqueue_t *q_p );&amp;lt;/nowiki&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;int isFullPQueue (pqueue_t *q_p );&amp;lt;/nowiki&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;'''Виконав Романів Роман'''&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>111</name></author>	</entry>

	<entry>
		<id>http://wiki.isofts.kiev.ua/index.php?title=%D0%9F%D0%BE%D1%88%D1%83%D0%BA_%D0%B2_%D0%B3%D1%80%D0%B0%D1%84%D1%96_%D0%B7_%D0%BA%D1%80%D0%B8%D1%82%D0%B5%D1%80%D1%96%D1%94%D0%BC_%D0%B2%D0%B0%D0%B3%D0%B8&amp;diff=2138&amp;oldid=prev</id>
		<title>111: /* Пошук вширину з критерієм ваги */</title>
		<link rel="alternate" type="text/html" href="http://wiki.isofts.kiev.ua/index.php?title=%D0%9F%D0%BE%D1%88%D1%83%D0%BA_%D0%B2_%D0%B3%D1%80%D0%B0%D1%84%D1%96_%D0%B7_%D0%BA%D1%80%D0%B8%D1%82%D0%B5%D1%80%D1%96%D1%94%D0%BC_%D0%B2%D0%B0%D0%B3%D0%B8&amp;diff=2138&amp;oldid=prev"/>
				<updated>2018-02-16T22:16:56Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Пошук вширину з критерієм ваги&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Попередня версія&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версія за 22:16, 16 лютого 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L1&quot; &gt;Рядок 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Рядок 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Пошук вширину з критерієм ваги ==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Файл:Ucs_selection_flow.png|300px|thumb|right|Приклад графа де вибір найнижчої вартості для першого &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Файл:Ucs_selection_flow.png|300px|thumb|right|Приклад графа де вибір найнижчої вартості для першого &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;вузла не дає найкращого результату]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;вузла не дає найкращого результату]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>111</name></author>	</entry>

	<entry>
		<id>http://wiki.isofts.kiev.ua/index.php?title=%D0%9F%D0%BE%D1%88%D1%83%D0%BA_%D0%B2_%D0%B3%D1%80%D0%B0%D1%84%D1%96_%D0%B7_%D0%BA%D1%80%D0%B8%D1%82%D0%B5%D1%80%D1%96%D1%94%D0%BC_%D0%B2%D0%B0%D0%B3%D0%B8&amp;diff=2137&amp;oldid=prev</id>
		<title>111: Створена сторінка: == Пошук вширину з критерієм ваги == Файл:Ucs_selection_flow.png|300px|thumb|right|Приклад графа де вибір н...</title>
		<link rel="alternate" type="text/html" href="http://wiki.isofts.kiev.ua/index.php?title=%D0%9F%D0%BE%D1%88%D1%83%D0%BA_%D0%B2_%D0%B3%D1%80%D0%B0%D1%84%D1%96_%D0%B7_%D0%BA%D1%80%D0%B8%D1%82%D0%B5%D1%80%D1%96%D1%94%D0%BC_%D0%B2%D0%B0%D0%B3%D0%B8&amp;diff=2137&amp;oldid=prev"/>
				<updated>2018-02-16T22:16:15Z</updated>
		
		<summary type="html">&lt;p&gt;Створена сторінка: == Пошук вширину з критерієм ваги == Файл:Ucs_selection_flow.png|300px|thumb|right|Приклад графа де вибір н...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова сторінка&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Пошук вширину з критерієм ваги ==&lt;br /&gt;
[[Файл:Ucs_selection_flow.png|300px|thumb|right|Приклад графа де вибір найнижчої вартості для першого &lt;br /&gt;
вузла не дає найкращого результату]]&lt;br /&gt;
=== Поняття ===&lt;br /&gt;
Пошук з критерієм ваги (вартості) (UCS) можна застосувати, щоб знайти найнижчу вартість через [[Граф|граф]], зберігаючи упорядкований список вузлів у порядку зниження ваги. Це дозволяє нам оцінити найменший рівень витрат з самого початку.&lt;br /&gt;
&lt;br /&gt;
[[Алгоритм|Алгоритм]] UCS використовує накопичену вартість шляху для визначення шляху для оцінки. Черга пріоритетів (відсортована від найменшої вартості до найбільшої) містить вузли для оцінювання. Оскільки діти вузлів оцінюються, ми додаємо їхню вартість до вузла з сукупною сумою поточного шляху. Цей вузол потім додається до черги, а коли всі діти оцінюються, то черга сортується в порядку зростання вартості. Коли першим елементом у черзі на пріоритет є цільовий вузол, то знайдено найкраще рішення.&lt;br /&gt;
&lt;br /&gt;
UCS є оптимальним і може бути повним, але тільки в тому випадку, якщо вартість дуг невід'ємна (сумарна вартість маршруту завжди зростає). Складність часу та простору є такою ж, як BFS, O (b^d) для кожного.&lt;br /&gt;
&lt;br /&gt;
=== Перебіг пошуку ===&lt;br /&gt;
[[Файл:Ucs_priorities.png|300px|thumb|left|Оцінка вузлів і стан черги пріоритетів]]&lt;br /&gt;
[[Файл:Ucs_price.png|300px|thumb|right|Ілюстрація вартості шляху в графі]]&lt;br /&gt;
На першому кроці початковий вузол був доданий до черги для пріоритетів, з вартістю нуль. На другому кроці кожний із трьох пов'язаних вузлів оцінюється та додається в чергу пріоритету. Коли жоден дочірній вузол не доступний для оцінки, черга пріоритетів сортується, щоб розмістити їх у порядку зростання вартості.&lt;br /&gt;
&lt;br /&gt;
На третьому етапі оцінюються дочірні вузли С. У цьому випадку ми знаходимо бажану ціль (E), але оскільки накопичена ціна шляху становить вісім, вона закінчується в кінці черги. Для четвертого етапу ми оцінюємо вузол D та знову шукаємо цільовий вузол. Ціна шляху дорівнює семи, що все ще перевершує наш вузол B у черзі. Нарешті, на п’ятому етапі, оцінюється вузол В. Цільовий вузол знайдено знову, при цьому вартість маршруту становить шість. Черга пріоритету тепер містить цільовий вузол у верхній частині, що означає, що на наступній ітерації циклу [[Алгоритм|алгоритм]] вийде з шляху A-&amp;gt; B-&amp;gt; E (працює назад від цільового вузла до початкового вузла).&lt;br /&gt;
&lt;br /&gt;
Щоб обмежити розмір черги для пріоритетів, можна стерти записи, які є надлишковими. Наприклад, на кроці 4, запис про E (8) можна було б безпечно видалити, оскільки існує інший шлях, який має нижчу вартість (E (7)).&lt;br /&gt;
&lt;br /&gt;
=== Реалізація ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt; &lt;br /&gt;
#include “graph.h” &lt;br /&gt;
#include “pqueue.h” &lt;br /&gt;
#deﬁne A 0 &lt;br /&gt;
#deﬁne B 1 &lt;br /&gt;
#deﬁne C 2 &lt;br /&gt;
#deﬁne D 3 &lt;br /&gt;
#deﬁne E 4 &lt;br /&gt;
int init_graph( graph_t *g_p ) &lt;br /&gt;
{&lt;br /&gt;
  addEdge( g_p, A, B, 5 );&lt;br /&gt;
  addEdge( g_p, A, C, 1 );&lt;br /&gt;
  addEdge( g_p, A, D, 2 );&lt;br /&gt;
  addEdge( g_p, B, E, 1 );&lt;br /&gt;
  addEdge( g_p, C, E, 7 );&lt;br /&gt;
  addEdge( g_p, D, E, 5 );&lt;br /&gt;
  return 0; &lt;br /&gt;
}&lt;br /&gt;
void ucs( graph_t *g_p, int root, int goal ) &lt;br /&gt;
{&lt;br /&gt;
  int node, cost, child_cost;&lt;br /&gt;
  int to;  pqueue_t *q_p;&lt;br /&gt;
  q_p = createPQueue( 7 );&lt;br /&gt;
  enPQueue( q_p, root, 0 );&lt;br /&gt;
  while ( !isEmptyPQueue(q_p) ) &lt;br /&gt;
  {&lt;br /&gt;
    dePQueue( q_p, &amp;amp;node, &amp;amp;cost );&lt;br /&gt;
    if (node == goal) &lt;br /&gt;
    {&lt;br /&gt;
      printf(“cost %d\n”, cost);&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    for (to = g_p-&amp;gt;nodes-1 ; to &amp;gt; 0 ; to--) &lt;br /&gt;
{&lt;br /&gt;
      child_cost = getEdge( g_p, node, to );&lt;br /&gt;
      if (child_cost) &lt;br /&gt;
      {&lt;br /&gt;
        enPQueue( q_p, to, (child_cost+cost) );&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  destroyPQueue( q_p );&lt;br /&gt;
  return;&lt;br /&gt;
 }&lt;br /&gt;
 int main() &lt;br /&gt;
{&lt;br /&gt;
  graph_t *g_p;&lt;br /&gt;
  g_p = createGraph( 6 );&lt;br /&gt;
  init_graph( g_p );&lt;br /&gt;
  ucs( g_p, A, E );&lt;br /&gt;
  destroyGraph( g_p );&lt;br /&gt;
  return 0;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Допоміжний АРІ ==&lt;br /&gt;
Для демонстрації алгоритмів пошуку необхідний допоміжний АРІ, що включає перелічені функції:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
/* Graph API */ &lt;br /&gt;
graph_t *createGraph (int nodes ); &lt;br /&gt;
void destroyGraph (graph_t *g_p ); &lt;br /&gt;
void addEdge (graph_t *g_p, int from, int to, int value ); &lt;br /&gt;
int getEdge (graph_t *g_p, int from, int to ); &lt;br /&gt;
/* Stack API */ &lt;br /&gt;
stack_t  *createStack (int depth ); &lt;br /&gt;
void destroyStack (stack_t *s_p ); &lt;br /&gt;
void pushStack (stack_t *s_p, int value ); &lt;br /&gt;
int popStack (stack_t *s_p ); &lt;br /&gt;
int isEmptyStack (stack_t *s_p ); &lt;br /&gt;
/* Queue API */ &lt;br /&gt;
queue_t  *createQueue (int depth ); &lt;br /&gt;
void destroyQueue (queue_t *q_p ); &lt;br /&gt;
void enQueue (queue_t *q_p, int value ); &lt;br /&gt;
int deQueue (queue_t *q_p ); &lt;br /&gt;
int isEmptyQueue (queue_t *q_p ); &lt;br /&gt;
/* Priority Queue API */ &lt;br /&gt;
pqueue_t *createPQueue (int depth );&lt;br /&gt;
void destroyPQueue (pqueue_t *q_p ); &lt;br /&gt;
void enPQueue (pqueue_t *q_p, int value, int cost ); &lt;br /&gt;
void dePQueue (pqueue_t *q_p, int *value, int *cost ); &lt;br /&gt;
int isEmptyPQueue (pqueue_t *q_p ); &lt;br /&gt;
int isFullPQueue (pqueue_t *q_p );&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>111</name></author>	</entry>

	</feed>