<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[تالار گفتگوی کیش تک/ kishtech forum - درس ساختمان داده - سه شنبه ها]]></title>
		<link>http://forum.kishtech.ir/</link>
		<description><![CDATA[تالار گفتگوی کیش تک/ kishtech forum - http://forum.kishtech.ir]]></description>
		<pubDate>Fri, 10 Apr 2026 12:31:18 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[گراف]]></title>
			<link>http://forum.kishtech.ir/showthread.php?tid=111291</link>
			<pubDate>Mon, 23 Dec 2024 18:37:01 +0330</pubDate>
			<dc:creator><![CDATA[<a href="http://forum.kishtech.ir/member.php?action=profile&uid=15824">amirhossein shirazi</a>]]></dc:creator>
			<guid isPermaLink="false">http://forum.kishtech.ir/showthread.php?tid=111291</guid>
			<description><![CDATA[بخش اول گراف<br />
<hr class="mycode_hr" />
نمونه سوال گراف<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://forum.kishtech.ir/images/attachtypes/pdf.png" title="Adobe Acrobat PDF" border="0" alt=".pdf" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=5355" target="_blank" title="">امیرحسین شیرازی  بخش اول گراف.pdf</a> (اندازه:  699.86 KB / تعداد دفعات دریافت:  0)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://forum.kishtech.ir/images/attachtypes/pdf.png" title="Adobe Acrobat PDF" border="0" alt=".pdf" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=5356" target="_blank" title="">نمونه سوال بخش اول گراف.pdf</a> (اندازه:  70.89 KB / تعداد دفعات دریافت:  0)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[بخش اول گراف<br />
<hr class="mycode_hr" />
نمونه سوال گراف<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://forum.kishtech.ir/images/attachtypes/pdf.png" title="Adobe Acrobat PDF" border="0" alt=".pdf" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=5355" target="_blank" title="">امیرحسین شیرازی  بخش اول گراف.pdf</a> (اندازه:  699.86 KB / تعداد دفعات دریافت:  0)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://forum.kishtech.ir/images/attachtypes/pdf.png" title="Adobe Acrobat PDF" border="0" alt=".pdf" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=5356" target="_blank" title="">نمونه سوال بخش اول گراف.pdf</a> (اندازه:  70.89 KB / تعداد دفعات دریافت:  0)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[گراف بخش اول]]></title>
			<link>http://forum.kishtech.ir/showthread.php?tid=111285</link>
			<pubDate>Mon, 23 Dec 2024 17:53:17 +0330</pubDate>
			<dc:creator><![CDATA[<a href="http://forum.kishtech.ir/member.php?action=profile&uid=15824">amirhossein shirazi</a>]]></dc:creator>
			<guid isPermaLink="false">http://forum.kishtech.ir/showthread.php?tid=111285</guid>
			<description><![CDATA[در ریاضیات و علوم کامپیوتر، گراف (Graph) ساختاری است که مجموعه ای از نود ها ( یا رأس ها و نقاط و یال ها و لبه ها را شامل می شود.نود ها یا <br />
رأس ها نشان دهنده اشیاء یا عناصر هستند و یال ها نشان دهنده روابط بین این عناصر هستند. <br />
تعریف گراف :هر گراف را به صورت )G = )V,Eکه از مجموعه ناتهی از رأس ها )V)Vertex و مجموعه ای از یال های )E)Edge تشکیل شده است. <br />
انواع گراف <br />
جهت دار : <br />
ترتیب گره ها در زوج مرتب اهمیت دارد. <br />
2-غیرجهت دار : <br />
گرافی است که درآن جای دو رأس در مجموعه یالها اهمیت نداشته باشد.<br />
<br />
گراف پوچ :گرافی است که مجموعه یال های آن تهی باشد به عبارت دیگر یعنی فقط رأس ها در آن وجود دارند. <br />
 گره مجاور: گره X مجاور گره Y است اگر بین آنها یک یال وجود داشته باشد . <br />
 راس منفرد (منزوی) : رأسی که هیچ رأس مجاوری نداشته باشد. <br />
طوقه (Loop ) : یالی که گره ابتدا و انتها آن یکی باشد. <br />
 گراف چندگانه (Multi Graph) : گرافی است که در آن داشتن یال های چندگانه و طوقه مجاز باشد.<br />
<br />
گراف برچسب دار: گرافی است اطلاعاتی به یال های آن نسبت داده شده است. <br />
 گراف وزن دار : گرافی است که به هر یال آن یک مقدار عددی غیر منفی نسبت داده شده است. <br />
 گراف کامل (complete Graph) :گرافی است که بین هر دو رأس آنیک یال وجود دارد به عبارتی گرافی است که حداکثر تعداد یال <br />
ها را دارد.<br />
<br />
درجه گره : درجه گره برابر است با مجموع تعداد یال های متصل به یک گره . <br />
 درجه گراف : برابر است با بزرگترین درجه گره های گراف . <br />
 درجه ورودی : به تعداد یال های وارد شده به یک رأس در یک گراف جهت دار درجه ورودی آن رأس می گویند. <br />
 درجه خروجی : به تعداد یال های خارج شده از یک رأس در یک گراف جهت دار درجه خروجی آن رأس می گویند. <br />
 مسیر: مجموعه ای از یال های پشت سر هم که دو رأس را به هم وصل می کنند. <br />
 مسیر ساده : مسیری است که همه رأس های آن مجزا باشد به جز اولی و آخری . <br />
 طول مسیر : تعداد یال های موجود در مسیر است. <br />
 حلقه یا سیکل : مسیر ساده ای که گره اول و آخر آن یکی باشد.<br />
<br />
گره چاه : گره ای که درجه خروجی صفر و درجه ورودی <br />
مثبت داشته باشد را گره چاه می گوییم. <br />
گره منبع : گره ای که درجه خروجی مثبت و درجه ورودی <br />
صفر داشته باشد را گره منبع می گوییم. <br />
گراف همبند و غیر همبند : <br />
گراف همبند: یک گراف همبند گرافی است که درآن از هر <br />
رأس می توان به تمام رأس های دیگراز طریق یال ها رسید . <br />
به عبارت دیگر برای هر دو رأس دلخواه در گراف یک مسیر <br />
از یال ها وجود دارد که این دو رأس را به هم وصل کند . <br />
گراف ناهمبند : در گراف ناهمبند ممکن است بعضی رأس ها <br />
به یکدیگر متصل نباشند به عبارت دیگر برای بعضی رأس ها <br />
هیچ مسیری برای رسیدن به دیگر رأس ها وجود ندارد و <br />
گراف به چند بخش مجزا تقسیم شود.<br />
<br />
گراف جهت دار همبند قوی و ضعیف : <br />
 گراف همبند قوی جهت دار : در این نوع گراف بین هر جفت از رأس ها مسیر های جهت دار به طور کامل در هر دو جهت وجود دارند.یعنی اگر از یک رأس <br />
شروع کنیم می توانیم به راس های دیگر برسیم. <br />
 گراف همبند ضعیف جهت دار: به گرافی گفته می شود که در آن جهت یال ها نادید گرفته شود به عبارت دیگر در این گراف هیچ گونه مسیری از یک رأس به <br />
رأس های دیگر وجود نداشته باشد. <br />
 تفاوت درخت با گراف <br />
 1- درخت یک گراف بدون حلقه است که یک گره خاص بنام ریشه دارد و از ریشه ی درخت یک مسیر ساده به گره های دیگر وجود دارد. پس میتوان گفت که <br />
درخت یک گراف متصل است. <br />
 2- پیمایش درخت از ریشه به گرههای دیگر صورت میپذیرد. پس میتوان گفتن ه درخت یک گراف جهت دار است .<br />
<br />
ما به دو روش می توانیم گراف را نمایش دهیم : <br />
 1- ماتریس مجاورت 2- لیست مجاورت <br />
 1 – ماتریس مجاورت : ماتریس مجاورت یا همجواری یک گراف با n رأس آرایه ای n × n است که به صورت زیر تعریف می شود . <br />
 نکته1: ماتریس مجاورتی یک گراف بدون جهت حتما متقارن است و <br />
 می توان برای نگهداری آن از ماتریس بالا یا پایین مثلثی استفاده کرد. <br />
 نکته2:ماتریس مجاورت یا همجواری گراف جهت دار لزوما متقارن نیست. <br />
 نکته3: در ماتریس مجاورتی برای گراف جهت دار مجموع سطری درجه خروجی و مجموع ستونی درجه ورودی رأس نظیر یاسطر یا <br />
ستون را نشان می دهد ولی برای گراف بدون جهت مجموع سطری یا ستونی درجه هر رأس نظیر است. <br />
 نکته 4:تعداد « 1» ها در ماتریس مجاورتی گراف بدون جهت دو برابر یال ها و در گراف جهت دار برابر با یال ها است . <br />
 نکته5: از نقاط قوت ماتریس مجاورتی می توان به سرعت دسترسی به مجاور بودن یا نبودن دو گره اشاره کرد که با زمان )O)1انجام <br />
می شود. <br />
 نکته 6:با استفاده از ماتریس مجاورتی همه الگوریتم های لازم برای گراف با n رأس با زمان )O)n² انجام می شود<br />
<br />
لیست مجاورت : <br />
 یکی از ایراد های روش ماتریس مجاورتی مشکل حذف و اضافه کردن گره هاست زیرا در این صورت اندازه ماتریس بایدتغییر کند. و <br />
دلیل دیگر این است که اگر تعداد یال ها کم باشد(مثلا در گرافی n رأس تعداد یال ها n یا logn n)اباشد نگاه ماتریس خلوت به <br />
وجود می آید و فضای زیادی اشغال میشود. <br />
 نکته 1: در یک گراف بدون جهت با n رأس و e یال نباز به آرایه ای به طول n و 2eگره لیست پیوندی است. <br />
 نکته2:در یک گراف جهت دار با n رأس و e یال نیاز به آرایه ای به طول n و e گره لیست پیوندی است. <br />
 نکته 3:اگر تعدا رأس ها گراف n باشد تعداد کل یال ها ) O)n+e تعیین می شود. <br />
 نکته 4:درجه هر رأس را در یک گراف بدون جهت را می توان با شمارش تعداد گره های آن در لیست مجاورتی تعیین نمود]]></description>
			<content:encoded><![CDATA[در ریاضیات و علوم کامپیوتر، گراف (Graph) ساختاری است که مجموعه ای از نود ها ( یا رأس ها و نقاط و یال ها و لبه ها را شامل می شود.نود ها یا <br />
رأس ها نشان دهنده اشیاء یا عناصر هستند و یال ها نشان دهنده روابط بین این عناصر هستند. <br />
تعریف گراف :هر گراف را به صورت )G = )V,Eکه از مجموعه ناتهی از رأس ها )V)Vertex و مجموعه ای از یال های )E)Edge تشکیل شده است. <br />
انواع گراف <br />
جهت دار : <br />
ترتیب گره ها در زوج مرتب اهمیت دارد. <br />
2-غیرجهت دار : <br />
گرافی است که درآن جای دو رأس در مجموعه یالها اهمیت نداشته باشد.<br />
<br />
گراف پوچ :گرافی است که مجموعه یال های آن تهی باشد به عبارت دیگر یعنی فقط رأس ها در آن وجود دارند. <br />
 گره مجاور: گره X مجاور گره Y است اگر بین آنها یک یال وجود داشته باشد . <br />
 راس منفرد (منزوی) : رأسی که هیچ رأس مجاوری نداشته باشد. <br />
طوقه (Loop ) : یالی که گره ابتدا و انتها آن یکی باشد. <br />
 گراف چندگانه (Multi Graph) : گرافی است که در آن داشتن یال های چندگانه و طوقه مجاز باشد.<br />
<br />
گراف برچسب دار: گرافی است اطلاعاتی به یال های آن نسبت داده شده است. <br />
 گراف وزن دار : گرافی است که به هر یال آن یک مقدار عددی غیر منفی نسبت داده شده است. <br />
 گراف کامل (complete Graph) :گرافی است که بین هر دو رأس آنیک یال وجود دارد به عبارتی گرافی است که حداکثر تعداد یال <br />
ها را دارد.<br />
<br />
درجه گره : درجه گره برابر است با مجموع تعداد یال های متصل به یک گره . <br />
 درجه گراف : برابر است با بزرگترین درجه گره های گراف . <br />
 درجه ورودی : به تعداد یال های وارد شده به یک رأس در یک گراف جهت دار درجه ورودی آن رأس می گویند. <br />
 درجه خروجی : به تعداد یال های خارج شده از یک رأس در یک گراف جهت دار درجه خروجی آن رأس می گویند. <br />
 مسیر: مجموعه ای از یال های پشت سر هم که دو رأس را به هم وصل می کنند. <br />
 مسیر ساده : مسیری است که همه رأس های آن مجزا باشد به جز اولی و آخری . <br />
 طول مسیر : تعداد یال های موجود در مسیر است. <br />
 حلقه یا سیکل : مسیر ساده ای که گره اول و آخر آن یکی باشد.<br />
<br />
گره چاه : گره ای که درجه خروجی صفر و درجه ورودی <br />
مثبت داشته باشد را گره چاه می گوییم. <br />
گره منبع : گره ای که درجه خروجی مثبت و درجه ورودی <br />
صفر داشته باشد را گره منبع می گوییم. <br />
گراف همبند و غیر همبند : <br />
گراف همبند: یک گراف همبند گرافی است که درآن از هر <br />
رأس می توان به تمام رأس های دیگراز طریق یال ها رسید . <br />
به عبارت دیگر برای هر دو رأس دلخواه در گراف یک مسیر <br />
از یال ها وجود دارد که این دو رأس را به هم وصل کند . <br />
گراف ناهمبند : در گراف ناهمبند ممکن است بعضی رأس ها <br />
به یکدیگر متصل نباشند به عبارت دیگر برای بعضی رأس ها <br />
هیچ مسیری برای رسیدن به دیگر رأس ها وجود ندارد و <br />
گراف به چند بخش مجزا تقسیم شود.<br />
<br />
گراف جهت دار همبند قوی و ضعیف : <br />
 گراف همبند قوی جهت دار : در این نوع گراف بین هر جفت از رأس ها مسیر های جهت دار به طور کامل در هر دو جهت وجود دارند.یعنی اگر از یک رأس <br />
شروع کنیم می توانیم به راس های دیگر برسیم. <br />
 گراف همبند ضعیف جهت دار: به گرافی گفته می شود که در آن جهت یال ها نادید گرفته شود به عبارت دیگر در این گراف هیچ گونه مسیری از یک رأس به <br />
رأس های دیگر وجود نداشته باشد. <br />
 تفاوت درخت با گراف <br />
 1- درخت یک گراف بدون حلقه است که یک گره خاص بنام ریشه دارد و از ریشه ی درخت یک مسیر ساده به گره های دیگر وجود دارد. پس میتوان گفت که <br />
درخت یک گراف متصل است. <br />
 2- پیمایش درخت از ریشه به گرههای دیگر صورت میپذیرد. پس میتوان گفتن ه درخت یک گراف جهت دار است .<br />
<br />
ما به دو روش می توانیم گراف را نمایش دهیم : <br />
 1- ماتریس مجاورت 2- لیست مجاورت <br />
 1 – ماتریس مجاورت : ماتریس مجاورت یا همجواری یک گراف با n رأس آرایه ای n × n است که به صورت زیر تعریف می شود . <br />
 نکته1: ماتریس مجاورتی یک گراف بدون جهت حتما متقارن است و <br />
 می توان برای نگهداری آن از ماتریس بالا یا پایین مثلثی استفاده کرد. <br />
 نکته2:ماتریس مجاورت یا همجواری گراف جهت دار لزوما متقارن نیست. <br />
 نکته3: در ماتریس مجاورتی برای گراف جهت دار مجموع سطری درجه خروجی و مجموع ستونی درجه ورودی رأس نظیر یاسطر یا <br />
ستون را نشان می دهد ولی برای گراف بدون جهت مجموع سطری یا ستونی درجه هر رأس نظیر است. <br />
 نکته 4:تعداد « 1» ها در ماتریس مجاورتی گراف بدون جهت دو برابر یال ها و در گراف جهت دار برابر با یال ها است . <br />
 نکته5: از نقاط قوت ماتریس مجاورتی می توان به سرعت دسترسی به مجاور بودن یا نبودن دو گره اشاره کرد که با زمان )O)1انجام <br />
می شود. <br />
 نکته 6:با استفاده از ماتریس مجاورتی همه الگوریتم های لازم برای گراف با n رأس با زمان )O)n² انجام می شود<br />
<br />
لیست مجاورت : <br />
 یکی از ایراد های روش ماتریس مجاورتی مشکل حذف و اضافه کردن گره هاست زیرا در این صورت اندازه ماتریس بایدتغییر کند. و <br />
دلیل دیگر این است که اگر تعداد یال ها کم باشد(مثلا در گرافی n رأس تعداد یال ها n یا logn n)اباشد نگاه ماتریس خلوت به <br />
وجود می آید و فضای زیادی اشغال میشود. <br />
 نکته 1: در یک گراف بدون جهت با n رأس و e یال نباز به آرایه ای به طول n و 2eگره لیست پیوندی است. <br />
 نکته2:در یک گراف جهت دار با n رأس و e یال نیاز به آرایه ای به طول n و e گره لیست پیوندی است. <br />
 نکته 3:اگر تعدا رأس ها گراف n باشد تعداد کل یال ها ) O)n+e تعیین می شود. <br />
 نکته 4:درجه هر رأس را در یک گراف بدون جهت را می توان با شمارش تعداد گره های آن در لیست مجاورتی تعیین نمود]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[گراف]]></title>
			<link>http://forum.kishtech.ir/showthread.php?tid=111283</link>
			<pubDate>Mon, 23 Dec 2024 17:50:09 +0330</pubDate>
			<dc:creator><![CDATA[<a href="http://forum.kishtech.ir/member.php?action=profile&uid=15824">amirhossein shirazi</a>]]></dc:creator>
			<guid isPermaLink="false">http://forum.kishtech.ir/showthread.php?tid=111283</guid>
			<description><![CDATA[1-گراف چیست و چگونه می توان آن را به صورت گرافیکی نشان داد؟  <br />
2-چگونه می توان گراف های جهت دار و بدوت جهت را نمایش داد و در کدام موارد  <br />
هر یک از این روش ها مناسب تر است؟  <br />
3-ت فاوت های اصلی بین دو روش نمایش گراف ها، یعنی ماتریس مجاورت و لیست  <br />
مجاورت چیست؟  <br />
4-چگونه می توان گراف همبند و غیر همبند را از یکدیگرمتمایز کرد؟  <br />
5-چه زمانی استفاده از لیست مجاورت به جای ماتریس مجاورت مناسب تر است؟]]></description>
			<content:encoded><![CDATA[1-گراف چیست و چگونه می توان آن را به صورت گرافیکی نشان داد؟  <br />
2-چگونه می توان گراف های جهت دار و بدوت جهت را نمایش داد و در کدام موارد  <br />
هر یک از این روش ها مناسب تر است؟  <br />
3-ت فاوت های اصلی بین دو روش نمایش گراف ها، یعنی ماتریس مجاورت و لیست  <br />
مجاورت چیست؟  <br />
4-چگونه می توان گراف همبند و غیر همبند را از یکدیگرمتمایز کرد؟  <br />
5-چه زمانی استفاده از لیست مجاورت به جای ماتریس مجاورت مناسب تر است؟]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[گراف]]></title>
			<link>http://forum.kishtech.ir/showthread.php?tid=111280</link>
			<pubDate>Mon, 23 Dec 2024 17:31:56 +0330</pubDate>
			<dc:creator><![CDATA[<a href="http://forum.kishtech.ir/member.php?action=profile&uid=15824">amirhossein shirazi</a>]]></dc:creator>
			<guid isPermaLink="false">http://forum.kishtech.ir/showthread.php?tid=111280</guid>
			<description><![CDATA[نمونه سوالات فصل هفتم مبحث گراف<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://forum.kishtech.ir/images/attachtypes/pdf.png" title="Adobe Acrobat PDF" border="0" alt=".pdf" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=5350" target="_blank" title="">نمونه سوال بخش اول گراف.pdf</a> (اندازه:  70.89 KB / تعداد دفعات دریافت:  0)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[نمونه سوالات فصل هفتم مبحث گراف<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://forum.kishtech.ir/images/attachtypes/pdf.png" title="Adobe Acrobat PDF" border="0" alt=".pdf" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=5350" target="_blank" title="">نمونه سوال بخش اول گراف.pdf</a> (اندازه:  70.89 KB / تعداد دفعات دریافت:  0)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[فصل هفتم بخش دوم]]></title>
			<link>http://forum.kishtech.ir/showthread.php?tid=111261</link>
			<pubDate>Mon, 23 Dec 2024 16:33:19 +0330</pubDate>
			<dc:creator><![CDATA[<a href="http://forum.kishtech.ir/member.php?action=profile&uid=15767">امیررضا82</a>]]></dc:creator>
			<guid isPermaLink="false">http://forum.kishtech.ir/showthread.php?tid=111261</guid>
			<description><![CDATA[نمایش گراف با استفاده از لیست پیوندی<br />
 <br />
 <br />
بتوانیم به راحتی به آنها دسترسی داشته باشیم. لیست پیوندی یکی از روشهای کارآمد برای نمایش گراف است، مخصوصاًاًوقتی میخواهیم یک گراف را نمایش دهیم، هدف این است که اطلاعات مربوط به راسها و یالها را به نحوی ذخیره کنیم که<br />
.زمانی که تعداد یالها کمتر از تعداد تمام ترکیبهای ممکن بین راسها باشد (گراف خلوت یا کمتراکم)<br />
 <br />
در روش لیست پیوندی، به جای استفاده از ماتریس (که بیشتر حافظه رو مصرف میکنه)، برای هر راس یک لیست داریم که<br />
راسهای متصل به اون رو ذخیره میکنه.این لیست نشان دهنده همسایگان گره است، که این لیست معمولا با استفاده از یک آرایه<br />
.یا ساختار های دیگر پیاده سازی می شود<br />
 <br />
ساختار داده در این روش<br />
 ً هر راس یک لیست داره: مثلا راس (A) لیستی داره که تمام راسهای متصل به اون رو در خودش داره.<br />
 <br />
هر عنصر لیست شامل یک اشارهگر به راس متصلشده است: به این ترتیب، برای هر یال، اشارهگری به راس مقصد<br />
.داریم<br />
<br />
مثالی از یک گراف و نمایش لیست پیوندی آن<br />
:فرض کنید گراف زیر رو داریم<br />
 راس A به B و C وصله.<br />
 راس B به C و D وصله.<br />
 راس C فقط به D وصله.<br />
 <br />
:لیست پیوندی برای این گراف به این صورت نمایش داده میشه<br />
 <br />
A: → B → C<br />
 <br />
B: → C → D<br />
 <br />
C: → D<br />
 <br />
)هیچ ارتباطی نداره( <img src="http://forum.kishtech.ir/images/smilies/biggrin.png" alt="Big Grin" title="Big Grin" class="smilie smilie_4" /><br />
چند نکته<br />
.در این روش ، هر راس به یک لیست از گره های مجاورش اشاره می کند<br />
.اگر گراف بدون جهت باشد ،هر یال در هر دو راس ذخیره می شود<br />
.برای گراف های وزنی ، وزن ها نیز همراه با راس ها ذخیره می شوند<br />
مزایای استفاده از لیست پیوندی<br />
 <br />
صرفهجویی در فضا: در گرافهای خلوت که تعداد یالها کم است، لیست پیوندی فقط یالهای موجود را ذخیره میکند و فضای<br />
.اضافی برای یالهای غیرفعال (که وجود ندارند) اشغال نمیکند<br />
 <br />
افزودن و حذف یالها: اضافه یا حذف کردن یک یال در لیست پیوندی سادهتر است. کافی است یال موردنظر را به لیست پیوندی<br />
.راس مربوطه اضافه یا از آن حذف کنیم<br />
پیچیدگی زمانی<br />
در لیست پیوندی برای هر راس، یک لیست از همسایههایش ذخیره میشود. برای بررسی همسایهها، باید در لیست هر راس به ترتیب <br />
.بررسی کنیم<br />
زمان پیچیدگی بستگی به تعداد همسایهها دارد <br />
اگر یک راس، d همسایه داشته باشد، زمان پیچیدگی )O)d است که در آن d درجه راس (تعداد یالهای خروجی) است.<br />
<br />
 برای بررسی وجود یال بین دو راس، باید لیست همسایهها را جستجو کرد. بنابراین در بدترین حالت، زمان پیچیدگی برای جستجوی<br />
یال بین دو راس )O)d است<br />
پیچیدگی حافظه پیچیدگی حافظه<br />
<br />
<br />
 <br />
 <br />
 <br />
در لیست پیوندی برای هر راس، لیستی از همسایهها را ذخیره میکنیم. اگر E تعداد یالها باشد، چون هر یال در یک گراف بدون<br />
جهت در دو لیست همسایگی ذخیره میشود، حافظه مورد نیاز برابر با )O)V + E است.<br />
در لیست پیوندی برای هر راس، لیستی از همسایهها را ذخیره میکنیم. اگر E تعداد یالها باشد، چون هر یال در یک گراف بدون<br />
جهت در دو لیست همسایگی ذخیره میشود، حافظه مورد نیاز برابر با )O)V + E است.<br />
در گرافهای کمدرجه (گرافهایی با تعداد یال کم)، لیست پیوندی به مراتب حافظه کمتری نسبت به ماتریس مجاورت نیاز دارد. در گرافهای کمدرجه (گرافهایی با تعداد یال کم)، لیست پیوندی به مراتب حافظه کمتری نسبت به ماتریس مجاورت نیاز دارد.<br />
نتیجهگیری: نتیجهگیری:<br />
اگر گراف متراکم است (تعداد یالها زیاد است)، استفاده از ماتریس مجاورت ممکن است مفیدتر باشد چون دسترسی سریعتری به<br />
یالها خواهید داشت، حتی اگر حافظه بیشتری مصرف کند.<br />
اگر گراف متراکم است (تعداد یالها زیاد است)، استفاده از ماتریس مجاورت ممکن است مفیدتر باشد چون دسترسی سریعتری به<br />
یالها خواهید داشت، حتی اگر حافظه بیشتری مصرف کند.<br />
 ًبهتر است، چون حافظه کمتری مصرف میکند و<br />
اگر گراف کمدرجه است (تعداد یالها کم است)، استفاده از لیست پیوندی معمولا<br />
پیچیدگی زمانی برای پیدا کردن همسایهها بهطور میانگین کمتر خواهد بود.<br />
پیمایش گراف پیمایش گراف<br />
 <br />
 <br />
 <br />
 <br />
 <br />
 <br />
 <br />
 <br />
 <br />
 <br />
پیمایش گراف به این معنیه که ما میخواهیم همه راسها و یالهای گراف رو بازدید کنیم تا به اطلاعات مختلفی از ساختار گراف دسترسی پیدا<br />
کنیم. اهداف پیمایش گراف میتونند شامل موارد زیر باشند:<br />
پیمایش گراف به این معنیه که ما میخواهیم همه راسها و یالهای گراف رو بازدید کنیم تا به اطلاعات مختلفی از ساختار گراف دسترسی پیدا<br />
کنیم. اهداف پیمایش گراف میتونند شامل موارد زیر باشند:<br />
یافتن مسیرها یا اتصالها: بررسی اینکه آیا مسیری بین دو راس وجود داره یا نه. یافتن مسیرها یا اتصالها: بررسی اینکه آیا مسیری بین دو راس وجود داره یا نه.<br />
 ًپیدا کردن اینکه گراف همبند هست یا نه (همه راسها به هم متصلاند یا نه).<br />
 ًپیدا کردن اینکه گراف همبند هست یا نه (همه راسها به هم متصلاند یا نه). بررسی ویژگیهای گراف: مثلا<br />
بررسی ویژگیهای گراف: مثلا<br />
پیدا کردن کوتاهترین یا بهترین مسیر: این مورد در کاربردهای عملی مثل شبکههای ارتباطی و نقشهها خیلی مهمه. پیدا کردن کوتاهترین یا بهترین مسیر: این مورد در کاربردهای عملی مثل شبکههای ارتباطی و نقشهها خیلی مهمه.<br />
تفاوت پیمایش گراف و پیمایش درخت تفاوت پیمایش گراف و پیمایش درخت<br />
پیمایش گراف و درخت از نظر اصول کلی شبیه به هم هستند، اما تفاوتهای مهمی دارند: پیمایش گراف و درخت از نظر اصول کلی شبیه به هم هستند، اما تفاوتهای مهمی دارند:<br />
وجود حلقه (سیکل): گراف ممکن است حلقه داشته باشد، اما درخت هیچ حلقهای ندارد. بنابراین در پیمایش گراف، باید مراقب حلقهها باشیم تا به<br />
راسهای بازدیدشده دوباره برنگردیم، ولی در پیمایش درخت نیازی به این کار نیست.<br />
وجود حلقه (سیکل): گراف ممکن است حلقه داشته باشد، اما درخت هیچ حلقهای ندارد. بنابراین در پیمایش گراف، باید مراقب حلقهها باشیم تا به<br />
راسهای بازدیدشده دوباره برنگردیم، ولی در پیمایش درخت نیازی به این کار نیست.<br />
همبندی و تعداد مسیرها: درخت همیشه همبند است و فقط یک مسیر منحصربهفرد بین هر دو راس وجود دارد. اما گراف ممکن است همبند نباشد و<br />
بیش از یک مسیر بین دو راس داشته باشد.<br />
همبندی و تعداد مسیرها: درخت همیشه همبند است و فقط یک مسیر منحصربهفرد بین هر دو راس وجود دارد. اما گراف ممکن است همبند نباشد و<br />
بیش از یک مسیر بین دو راس داشته باشد.<br />
راس ریشه: درخت یک راس ریشه دارد که پیمایش از آن آغاز میشود و به کل درخت دسترسی داریم. اما در گراف راس شروع دلخواه است و ممکن<br />
است کل گراف از آن دسترسیپذیر نباشد (در گرافهای ناهمبند).<br />
راس ریشه: درخت یک راس ریشه دارد که پیمایش از آن آغاز میشود و به کل درخت دسترسی داریم. اما در گراف راس شروع دلخواه است و ممکن<br />
است کل گراف از آن دسترسیپذیر نباشد (در گرافهای ناهمبند).<br />
به طور خلاصه، پیمایش درخت سادهتر و مستقیمتر از پیمایش گراف است، چون در درخت نیازی به بررسی حلقهها یا مسیرهای متعدد نیست<br />
الگوریتم کلی برای پیمایش گراف<br />
 در پیمایش گراف، الگوریتم کلی به این صورت عمل میکنه:<br />
 ً انتخاب یک راس شروع: پیمایش گراف از یک راس دلخواه، که معمولا راس "شروع" نامیده میشه، آغاز میشه.<br />
 علامتگذاری یا ثبت بازدید شده: وقتی به یک راس رسیدیم، اون راس رو به عنوان "بازدید شده" علامتگذاری میکنیم، تا از بازدید<br />
دوباره همون راس جلوگیری کنیم.<br />
 بازدید از همسایهها: به سراغ همسایههای مستقیم راس میریم و هر کدوم رو بازدید و علامتگذاری میکنیم.<br />
 تکرار بازدید برای همسایهها: به ترتیب از همسایههای همسایهها بازدید میکنیم، تا وقتی که همه راسهای قابل دسترسی از راس شروع<br />
بازدید بشن.<br />
 ً بازگشت و ادامه از راسهای بعدی: اگر گراف دارای چندین قسمت جدا باشه (مثلا چندین زیرگراف بدون ارتباط)، الگوریتم به سراغ<br />
راسهای باقیمانده که هنوز بازدید نشدهاند میره.<br />
 در واقع این الگوریتم سعی میکنه تا از هر راس به تمامی نقاط متصل به اون دسترسی پیدا کنه و این کار رو تا جایی ادامه میده که همه<br />
نقاط ممکن بازدید بشن<br />
پیاده سازی کلی پیمایش گراف<br />
 <br />
پیمایش گراف می تونه با لیست مجاورت یا ماتریس مجاورت انجام بشه<br />
در روش لیست مجاورت ،هر راس یک لیست از همسایه های خود دارد که با یال به آن متصل -1<br />
.اند ،و پیمایش با مراجعه به این لیست ها انجام می شود<br />
2-در روش ماتریس مجاورت ، یک ماتریس v*v داریم که نشان می ده هر جفت راس آیا به هم<br />
متصل اند یا نه . این ماتریس برای پیمایش استفاده می شه تا بفهمیم از یک راس به کدام راس<br />
ها می تونیم حرکت کنیم<br />
یک الگوریتم پیمایش گراف باید ویژگیهای زیر را داشته باشد تا بتواند کارایی و<br />
:دقت لازم را فراهم کند<br />
 کامل بودن: الگوریتم باید تضمین کند که تمام راسها و یالهای موجود در گراف را بازدید میکند، تا هیچ بخشی از گراف از قلم نیفتد. این ویژگی<br />
مخصوصاًاًدر گرافهای همبند اهمیت دارد که همه نقاط از راس شروع قابل دسترسیاند.<br />
 پرهیز از حلقه بینهایت: در گرافهای جهتدار یا بدون جهت که ممکن است حلقه (سیکل) داشته باشند، الگوریتم باید از بازگشت به راسهای<br />
 ًبازدیدشده جلوگیری کند، تا در حلقه بینهایت گرفتار نشود. برای این کار معمولا از یک لیست یا مجموعه از راسهای بازدیدشده استفاده میشود.<br />
 بهینهسازی زمان و فضا: الگوریتم پیمایش باید از لحاظ زمانی و فضایی کارآمد باشد، بهویژه برای گرافهای بزرگ. برای این منظور، ساختار<br />
دادههای مناسبی مانند پشته (برای DFS) و صف (برای BFS) به کار میروند.<br />
 قابلیت پیادهسازی با ساختار دادههای مختلف: الگوریتم باید طوری طراحی شود که بتواند روی انواع ساختارهای ذخیرهسازی گراف (مثل<br />
لیست مجاورت و ماتریس مجاورت) پیادهسازی شود.<br />
 یافتن مسیرها یا تعیین توالیها: الگوریتم باید بتواند اطلاعاتی درباره توالی بازدیدها یا مسیر بین راسها را ذخیره کند. این ویژگی به<br />
خصوص برای حل مسائلی مثل پیدا کردن کوتاهترین مسیر، شناسایی مؤلفههای همبند و یافتن ترتیبهای خاص مفید است.<br />
 قابلیت استفاده در گرافهای وزندار و بدون وزن: الگوریتم باید طوری طراحی شود که هم در گرافهای وزندار و هم در گرافهای بدون وزن<br />
قابل استفاده باشد. در گرافهای وزندار، ممکن است نیاز به تغییراتی در الگوریتم (مثل استفاده از الگوریتمهای دیگر برای کوتاهترین مسیر) باشد<br />
 پیمایش گراف یک فرآیند اساسیه که با الگوریتم سادهای انجام میشه. این الگوریتم به ترتیب همه نقاط متصل به هم رو پیدا و بازدید میکنه تا به<br />
اطلاعات مختلفی در مورد ساختار و ویژگیهای گراف دسترسی داشته باشیم]]></description>
			<content:encoded><![CDATA[نمایش گراف با استفاده از لیست پیوندی<br />
 <br />
 <br />
بتوانیم به راحتی به آنها دسترسی داشته باشیم. لیست پیوندی یکی از روشهای کارآمد برای نمایش گراف است، مخصوصاًاًوقتی میخواهیم یک گراف را نمایش دهیم، هدف این است که اطلاعات مربوط به راسها و یالها را به نحوی ذخیره کنیم که<br />
.زمانی که تعداد یالها کمتر از تعداد تمام ترکیبهای ممکن بین راسها باشد (گراف خلوت یا کمتراکم)<br />
 <br />
در روش لیست پیوندی، به جای استفاده از ماتریس (که بیشتر حافظه رو مصرف میکنه)، برای هر راس یک لیست داریم که<br />
راسهای متصل به اون رو ذخیره میکنه.این لیست نشان دهنده همسایگان گره است، که این لیست معمولا با استفاده از یک آرایه<br />
.یا ساختار های دیگر پیاده سازی می شود<br />
 <br />
ساختار داده در این روش<br />
 ً هر راس یک لیست داره: مثلا راس (A) لیستی داره که تمام راسهای متصل به اون رو در خودش داره.<br />
 <br />
هر عنصر لیست شامل یک اشارهگر به راس متصلشده است: به این ترتیب، برای هر یال، اشارهگری به راس مقصد<br />
.داریم<br />
<br />
مثالی از یک گراف و نمایش لیست پیوندی آن<br />
:فرض کنید گراف زیر رو داریم<br />
 راس A به B و C وصله.<br />
 راس B به C و D وصله.<br />
 راس C فقط به D وصله.<br />
 <br />
:لیست پیوندی برای این گراف به این صورت نمایش داده میشه<br />
 <br />
A: → B → C<br />
 <br />
B: → C → D<br />
 <br />
C: → D<br />
 <br />
)هیچ ارتباطی نداره( <img src="http://forum.kishtech.ir/images/smilies/biggrin.png" alt="Big Grin" title="Big Grin" class="smilie smilie_4" /><br />
چند نکته<br />
.در این روش ، هر راس به یک لیست از گره های مجاورش اشاره می کند<br />
.اگر گراف بدون جهت باشد ،هر یال در هر دو راس ذخیره می شود<br />
.برای گراف های وزنی ، وزن ها نیز همراه با راس ها ذخیره می شوند<br />
مزایای استفاده از لیست پیوندی<br />
 <br />
صرفهجویی در فضا: در گرافهای خلوت که تعداد یالها کم است، لیست پیوندی فقط یالهای موجود را ذخیره میکند و فضای<br />
.اضافی برای یالهای غیرفعال (که وجود ندارند) اشغال نمیکند<br />
 <br />
افزودن و حذف یالها: اضافه یا حذف کردن یک یال در لیست پیوندی سادهتر است. کافی است یال موردنظر را به لیست پیوندی<br />
.راس مربوطه اضافه یا از آن حذف کنیم<br />
پیچیدگی زمانی<br />
در لیست پیوندی برای هر راس، یک لیست از همسایههایش ذخیره میشود. برای بررسی همسایهها، باید در لیست هر راس به ترتیب <br />
.بررسی کنیم<br />
زمان پیچیدگی بستگی به تعداد همسایهها دارد <br />
اگر یک راس، d همسایه داشته باشد، زمان پیچیدگی )O)d است که در آن d درجه راس (تعداد یالهای خروجی) است.<br />
<br />
 برای بررسی وجود یال بین دو راس، باید لیست همسایهها را جستجو کرد. بنابراین در بدترین حالت، زمان پیچیدگی برای جستجوی<br />
یال بین دو راس )O)d است<br />
پیچیدگی حافظه پیچیدگی حافظه<br />
<br />
<br />
 <br />
 <br />
 <br />
در لیست پیوندی برای هر راس، لیستی از همسایهها را ذخیره میکنیم. اگر E تعداد یالها باشد، چون هر یال در یک گراف بدون<br />
جهت در دو لیست همسایگی ذخیره میشود، حافظه مورد نیاز برابر با )O)V + E است.<br />
در لیست پیوندی برای هر راس، لیستی از همسایهها را ذخیره میکنیم. اگر E تعداد یالها باشد، چون هر یال در یک گراف بدون<br />
جهت در دو لیست همسایگی ذخیره میشود، حافظه مورد نیاز برابر با )O)V + E است.<br />
در گرافهای کمدرجه (گرافهایی با تعداد یال کم)، لیست پیوندی به مراتب حافظه کمتری نسبت به ماتریس مجاورت نیاز دارد. در گرافهای کمدرجه (گرافهایی با تعداد یال کم)، لیست پیوندی به مراتب حافظه کمتری نسبت به ماتریس مجاورت نیاز دارد.<br />
نتیجهگیری: نتیجهگیری:<br />
اگر گراف متراکم است (تعداد یالها زیاد است)، استفاده از ماتریس مجاورت ممکن است مفیدتر باشد چون دسترسی سریعتری به<br />
یالها خواهید داشت، حتی اگر حافظه بیشتری مصرف کند.<br />
اگر گراف متراکم است (تعداد یالها زیاد است)، استفاده از ماتریس مجاورت ممکن است مفیدتر باشد چون دسترسی سریعتری به<br />
یالها خواهید داشت، حتی اگر حافظه بیشتری مصرف کند.<br />
 ًبهتر است، چون حافظه کمتری مصرف میکند و<br />
اگر گراف کمدرجه است (تعداد یالها کم است)، استفاده از لیست پیوندی معمولا<br />
پیچیدگی زمانی برای پیدا کردن همسایهها بهطور میانگین کمتر خواهد بود.<br />
پیمایش گراف پیمایش گراف<br />
 <br />
 <br />
 <br />
 <br />
 <br />
 <br />
 <br />
 <br />
 <br />
 <br />
پیمایش گراف به این معنیه که ما میخواهیم همه راسها و یالهای گراف رو بازدید کنیم تا به اطلاعات مختلفی از ساختار گراف دسترسی پیدا<br />
کنیم. اهداف پیمایش گراف میتونند شامل موارد زیر باشند:<br />
پیمایش گراف به این معنیه که ما میخواهیم همه راسها و یالهای گراف رو بازدید کنیم تا به اطلاعات مختلفی از ساختار گراف دسترسی پیدا<br />
کنیم. اهداف پیمایش گراف میتونند شامل موارد زیر باشند:<br />
یافتن مسیرها یا اتصالها: بررسی اینکه آیا مسیری بین دو راس وجود داره یا نه. یافتن مسیرها یا اتصالها: بررسی اینکه آیا مسیری بین دو راس وجود داره یا نه.<br />
 ًپیدا کردن اینکه گراف همبند هست یا نه (همه راسها به هم متصلاند یا نه).<br />
 ًپیدا کردن اینکه گراف همبند هست یا نه (همه راسها به هم متصلاند یا نه). بررسی ویژگیهای گراف: مثلا<br />
بررسی ویژگیهای گراف: مثلا<br />
پیدا کردن کوتاهترین یا بهترین مسیر: این مورد در کاربردهای عملی مثل شبکههای ارتباطی و نقشهها خیلی مهمه. پیدا کردن کوتاهترین یا بهترین مسیر: این مورد در کاربردهای عملی مثل شبکههای ارتباطی و نقشهها خیلی مهمه.<br />
تفاوت پیمایش گراف و پیمایش درخت تفاوت پیمایش گراف و پیمایش درخت<br />
پیمایش گراف و درخت از نظر اصول کلی شبیه به هم هستند، اما تفاوتهای مهمی دارند: پیمایش گراف و درخت از نظر اصول کلی شبیه به هم هستند، اما تفاوتهای مهمی دارند:<br />
وجود حلقه (سیکل): گراف ممکن است حلقه داشته باشد، اما درخت هیچ حلقهای ندارد. بنابراین در پیمایش گراف، باید مراقب حلقهها باشیم تا به<br />
راسهای بازدیدشده دوباره برنگردیم، ولی در پیمایش درخت نیازی به این کار نیست.<br />
وجود حلقه (سیکل): گراف ممکن است حلقه داشته باشد، اما درخت هیچ حلقهای ندارد. بنابراین در پیمایش گراف، باید مراقب حلقهها باشیم تا به<br />
راسهای بازدیدشده دوباره برنگردیم، ولی در پیمایش درخت نیازی به این کار نیست.<br />
همبندی و تعداد مسیرها: درخت همیشه همبند است و فقط یک مسیر منحصربهفرد بین هر دو راس وجود دارد. اما گراف ممکن است همبند نباشد و<br />
بیش از یک مسیر بین دو راس داشته باشد.<br />
همبندی و تعداد مسیرها: درخت همیشه همبند است و فقط یک مسیر منحصربهفرد بین هر دو راس وجود دارد. اما گراف ممکن است همبند نباشد و<br />
بیش از یک مسیر بین دو راس داشته باشد.<br />
راس ریشه: درخت یک راس ریشه دارد که پیمایش از آن آغاز میشود و به کل درخت دسترسی داریم. اما در گراف راس شروع دلخواه است و ممکن<br />
است کل گراف از آن دسترسیپذیر نباشد (در گرافهای ناهمبند).<br />
راس ریشه: درخت یک راس ریشه دارد که پیمایش از آن آغاز میشود و به کل درخت دسترسی داریم. اما در گراف راس شروع دلخواه است و ممکن<br />
است کل گراف از آن دسترسیپذیر نباشد (در گرافهای ناهمبند).<br />
به طور خلاصه، پیمایش درخت سادهتر و مستقیمتر از پیمایش گراف است، چون در درخت نیازی به بررسی حلقهها یا مسیرهای متعدد نیست<br />
الگوریتم کلی برای پیمایش گراف<br />
 در پیمایش گراف، الگوریتم کلی به این صورت عمل میکنه:<br />
 ً انتخاب یک راس شروع: پیمایش گراف از یک راس دلخواه، که معمولا راس "شروع" نامیده میشه، آغاز میشه.<br />
 علامتگذاری یا ثبت بازدید شده: وقتی به یک راس رسیدیم، اون راس رو به عنوان "بازدید شده" علامتگذاری میکنیم، تا از بازدید<br />
دوباره همون راس جلوگیری کنیم.<br />
 بازدید از همسایهها: به سراغ همسایههای مستقیم راس میریم و هر کدوم رو بازدید و علامتگذاری میکنیم.<br />
 تکرار بازدید برای همسایهها: به ترتیب از همسایههای همسایهها بازدید میکنیم، تا وقتی که همه راسهای قابل دسترسی از راس شروع<br />
بازدید بشن.<br />
 ً بازگشت و ادامه از راسهای بعدی: اگر گراف دارای چندین قسمت جدا باشه (مثلا چندین زیرگراف بدون ارتباط)، الگوریتم به سراغ<br />
راسهای باقیمانده که هنوز بازدید نشدهاند میره.<br />
 در واقع این الگوریتم سعی میکنه تا از هر راس به تمامی نقاط متصل به اون دسترسی پیدا کنه و این کار رو تا جایی ادامه میده که همه<br />
نقاط ممکن بازدید بشن<br />
پیاده سازی کلی پیمایش گراف<br />
 <br />
پیمایش گراف می تونه با لیست مجاورت یا ماتریس مجاورت انجام بشه<br />
در روش لیست مجاورت ،هر راس یک لیست از همسایه های خود دارد که با یال به آن متصل -1<br />
.اند ،و پیمایش با مراجعه به این لیست ها انجام می شود<br />
2-در روش ماتریس مجاورت ، یک ماتریس v*v داریم که نشان می ده هر جفت راس آیا به هم<br />
متصل اند یا نه . این ماتریس برای پیمایش استفاده می شه تا بفهمیم از یک راس به کدام راس<br />
ها می تونیم حرکت کنیم<br />
یک الگوریتم پیمایش گراف باید ویژگیهای زیر را داشته باشد تا بتواند کارایی و<br />
:دقت لازم را فراهم کند<br />
 کامل بودن: الگوریتم باید تضمین کند که تمام راسها و یالهای موجود در گراف را بازدید میکند، تا هیچ بخشی از گراف از قلم نیفتد. این ویژگی<br />
مخصوصاًاًدر گرافهای همبند اهمیت دارد که همه نقاط از راس شروع قابل دسترسیاند.<br />
 پرهیز از حلقه بینهایت: در گرافهای جهتدار یا بدون جهت که ممکن است حلقه (سیکل) داشته باشند، الگوریتم باید از بازگشت به راسهای<br />
 ًبازدیدشده جلوگیری کند، تا در حلقه بینهایت گرفتار نشود. برای این کار معمولا از یک لیست یا مجموعه از راسهای بازدیدشده استفاده میشود.<br />
 بهینهسازی زمان و فضا: الگوریتم پیمایش باید از لحاظ زمانی و فضایی کارآمد باشد، بهویژه برای گرافهای بزرگ. برای این منظور، ساختار<br />
دادههای مناسبی مانند پشته (برای DFS) و صف (برای BFS) به کار میروند.<br />
 قابلیت پیادهسازی با ساختار دادههای مختلف: الگوریتم باید طوری طراحی شود که بتواند روی انواع ساختارهای ذخیرهسازی گراف (مثل<br />
لیست مجاورت و ماتریس مجاورت) پیادهسازی شود.<br />
 یافتن مسیرها یا تعیین توالیها: الگوریتم باید بتواند اطلاعاتی درباره توالی بازدیدها یا مسیر بین راسها را ذخیره کند. این ویژگی به<br />
خصوص برای حل مسائلی مثل پیدا کردن کوتاهترین مسیر، شناسایی مؤلفههای همبند و یافتن ترتیبهای خاص مفید است.<br />
 قابلیت استفاده در گرافهای وزندار و بدون وزن: الگوریتم باید طوری طراحی شود که هم در گرافهای وزندار و هم در گرافهای بدون وزن<br />
قابل استفاده باشد. در گرافهای وزندار، ممکن است نیاز به تغییراتی در الگوریتم (مثل استفاده از الگوریتمهای دیگر برای کوتاهترین مسیر) باشد<br />
 پیمایش گراف یک فرآیند اساسیه که با الگوریتم سادهای انجام میشه. این الگوریتم به ترتیب همه نقاط متصل به هم رو پیدا و بازدید میکنه تا به<br />
اطلاعات مختلفی در مورد ساختار و ویژگیهای گراف دسترسی داشته باشیم]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[فصل هشتم]]></title>
			<link>http://forum.kishtech.ir/showthread.php?tid=111014</link>
			<pubDate>Sun, 22 Dec 2024 10:46:18 +0330</pubDate>
			<dc:creator><![CDATA[<a href="http://forum.kishtech.ir/member.php?action=profile&uid=15770">amirham</a>]]></dc:creator>
			<guid isPermaLink="false">http://forum.kishtech.ir/showthread.php?tid=111014</guid>
			<description><![CDATA[ساختمان داده فصل هشتم<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://forum.kishtech.ir/images/attachtypes/pdf.png" title="Adobe Acrobat PDF" border="0" alt=".pdf" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=5334" target="_blank" title="">PS(1).pdf</a> (اندازه:  68.95 KB / تعداد دفعات دریافت:  0)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[ساختمان داده فصل هشتم<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://forum.kishtech.ir/images/attachtypes/pdf.png" title="Adobe Acrobat PDF" border="0" alt=".pdf" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=5334" target="_blank" title="">PS(1).pdf</a> (اندازه:  68.95 KB / تعداد دفعات دریافت:  0)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[سئوالات تستی در مورد ساختمان داده هرم]]></title>
			<link>http://forum.kishtech.ir/showthread.php?tid=110655</link>
			<pubDate>Fri, 20 Dec 2024 15:57:36 +0330</pubDate>
			<dc:creator><![CDATA[<a href="http://forum.kishtech.ir/member.php?action=profile&uid=15812">Hossein ramezani</a>]]></dc:creator>
			<guid isPermaLink="false">http://forum.kishtech.ir/showthread.php?tid=110655</guid>
			<description><![CDATA[۱.ساختمان داده هرم به طور معمول برای پیاده‌سازی کدام یک از موارد زیر استفاده می‌شود؟<br />
<br />
الف)جستجوی دودویی<br />
ب)مرتب‌سازی سریع<br />
ج)مرتب‌سازی هرمی<br />
د)درخت‌های AVL<br />
۲.در یک هرم بیشینه (Max-Heap)، چه شرطی باید بین والد و فرزندان برقرار باشد؟<br />
<br />
الف)مقدار والد کمتر از تمام فرزندان است.<br />
ب)مقدار والد بزرگ‌تر یا مساوی تمام فرزندان است.<br />
ج)مقدار والد برابر مجموع مقادیر فرزندان است.<br />
د)هیچ قاعده خاصی وجود ندارد.<br />
۳.ساختمان داده هرم معمولاً به چه صورت پیاده‌سازی می‌شود؟<br />
<br />
الف)با استفاده از درخت دودویی پیوندی<br />
ب)با استفاده از آرایه<br />
ج)با استفاده از لیست پیوندی<br />
د)با استفاده از جدول هش<br />
۴.در یک هرم کمینه (Min-Heap)، چه شرطی باید برقرار باشد؟<br />
<br />
الف)مقدار گره ریشه بزرگ‌تر از مقادیر تمام گره‌های فرزند است.<br />
ب)مقدار گره ریشه کمتر از مقادیر تمام گره‌های فرزند است.<br />
ج)گره ریشه همواره برابر مقدار میانی گره‌ها است.<br />
ب)ترتیب مقادیر گره‌ها اهمیت ندارد.<br />
۵.کدام یک از گزینه‌ها صحیح است؟<br />
<br />
الف)هر درخت دودویی هرم است.<br />
ب)هر آرایه می‌تواند به هرم تبدیل شود.<br />
ج)هرم همیشه متعادل نیست.<br />
د)هرم فقط در مرتب‌سازی داده‌ها استفاده می‌شود.]]></description>
			<content:encoded><![CDATA[۱.ساختمان داده هرم به طور معمول برای پیاده‌سازی کدام یک از موارد زیر استفاده می‌شود؟<br />
<br />
الف)جستجوی دودویی<br />
ب)مرتب‌سازی سریع<br />
ج)مرتب‌سازی هرمی<br />
د)درخت‌های AVL<br />
۲.در یک هرم بیشینه (Max-Heap)، چه شرطی باید بین والد و فرزندان برقرار باشد؟<br />
<br />
الف)مقدار والد کمتر از تمام فرزندان است.<br />
ب)مقدار والد بزرگ‌تر یا مساوی تمام فرزندان است.<br />
ج)مقدار والد برابر مجموع مقادیر فرزندان است.<br />
د)هیچ قاعده خاصی وجود ندارد.<br />
۳.ساختمان داده هرم معمولاً به چه صورت پیاده‌سازی می‌شود؟<br />
<br />
الف)با استفاده از درخت دودویی پیوندی<br />
ب)با استفاده از آرایه<br />
ج)با استفاده از لیست پیوندی<br />
د)با استفاده از جدول هش<br />
۴.در یک هرم کمینه (Min-Heap)، چه شرطی باید برقرار باشد؟<br />
<br />
الف)مقدار گره ریشه بزرگ‌تر از مقادیر تمام گره‌های فرزند است.<br />
ب)مقدار گره ریشه کمتر از مقادیر تمام گره‌های فرزند است.<br />
ج)گره ریشه همواره برابر مقدار میانی گره‌ها است.<br />
ب)ترتیب مقادیر گره‌ها اهمیت ندارد.<br />
۵.کدام یک از گزینه‌ها صحیح است؟<br />
<br />
الف)هر درخت دودویی هرم است.<br />
ب)هر آرایه می‌تواند به هرم تبدیل شود.<br />
ج)هرم همیشه متعادل نیست.<br />
د)هرم فقط در مرتب‌سازی داده‌ها استفاده می‌شود.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[ساختمان داده هرم (Heap)]]></title>
			<link>http://forum.kishtech.ir/showthread.php?tid=110652</link>
			<pubDate>Fri, 20 Dec 2024 15:44:50 +0330</pubDate>
			<dc:creator><![CDATA[<a href="http://forum.kishtech.ir/member.php?action=profile&uid=15812">Hossein ramezani</a>]]></dc:creator>
			<guid isPermaLink="false">http://forum.kishtech.ir/showthread.php?tid=110652</guid>
			<description><![CDATA[ساختمان داده هرم (Heap)<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://forum.kishtech.ir/images/attachtypes/pdf.png" title="Adobe Acrobat PDF" border="0" alt=".pdf" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=5314" target="_blank" title="">ساختمان داده هرم-محمدحسین رمضانی1.pdf</a> (اندازه:  635.07 KB / تعداد دفعات دریافت:  0)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[ساختمان داده هرم (Heap)<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://forum.kishtech.ir/images/attachtypes/pdf.png" title="Adobe Acrobat PDF" border="0" alt=".pdf" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=5314" target="_blank" title="">ساختمان داده هرم-محمدحسین رمضانی1.pdf</a> (اندازه:  635.07 KB / تعداد دفعات دریافت:  0)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[سوالات برج هانوی و کاربرد آن]]></title>
			<link>http://forum.kishtech.ir/showthread.php?tid=110525</link>
			<pubDate>Fri, 20 Dec 2024 00:33:23 +0330</pubDate>
			<dc:creator><![CDATA[<a href="http://forum.kishtech.ir/member.php?action=profile&uid=15773">محمد مهدی رمضانی</a>]]></dc:creator>
			<guid isPermaLink="false">http://forum.kishtech.ir/showthread.php?tid=110525</guid>
			<description><![CDATA[۱.هدف اصلی در حل مسئله برج هانوی چیست؟<br />
الف) مرتب کردن دیسک‌ها بر اساس اندازه<br />
ب) انتقال دیسک‌ها از یک میله به میله دیگر بدون شکستن قواعد<br />
ج) حذف دیسک‌های اضافی<br />
د) پیدا کردن کوتاه‌ترین مسیر<br />
<br />
۲.در مسئله برج هانوی، چه قانونی برای حرکت دیسک‌ها وجود دارد؟<br />
الف) دیسک کوچک‌تر نمی‌تواند روی دیسک بزرگ‌تر قرار گیرد.<br />
ب) دیسک بزرگ‌تر نمی‌تواند روی دیسک کوچک‌تر قرار گیرد.<br />
ج) دیسک‌ها باید به ترتیب اندازه جابه‌جا شوند.<br />
د) همه دیسک‌ها باید به طور همزمان جابه‌جا شوند.<br />
<br />
۳.حداقل تعداد حرکات مورد نیاز برای حل برج هانوی با 5 دیسک چند حرکت است؟<br />
الف) 15<br />
ب) 31<br />
ج) 63<br />
د) 127<br />
<br />
۴.کدام روش معمولاً برای حل مسئله برج هانوی استفاده می‌شود؟<br />
الف) جستجوی عمقی (DFS)<br />
ب) روش تقسیم و حل (Divide and Conquer)<br />
ج) برنامه‌ریزی پویا (Dynamic Programming)<br />
د) الگوریتم حریصانه (Greedy Algorithm)<br />
<br />
۵.اولین گام برای حل مسئله برج هانوی با سه دیسک چیست؟<br />
الف) انتقال کوچک‌ترین دیسک به میله کمکی<br />
ب) انتقال بزرگ‌ترین دیسک به میله مقصد<br />
ج) انتقال دیسک وسط به میله کمکی<br />
د) انتقال کوچک‌ترین دیسک به میله مقصد<br />
<br />
۶.در مسئله برج هانوی، کدام یک از موارد زیر در هر حرکت رعایت می‌شود؟<br />
الف) فقط یک دیسک در هر حرکت جابه‌جا شود.<br />
ب) چندین دیسک به صورت همزمان قابل جابه‌جایی هستند.<br />
ج) دیسک‌های کوچک‌تر همیشه در پایین‌ترین موقعیت قرار می‌گیرند.<br />
د) می‌توان دیسک‌ها را از وسط بازی حذف کرد.<br />
<br />
۷.برج هانوی برای چند دیسک با چه الگوریتمی می‌تواند بازگشتی حل شود؟<br />
الف) انتقال  دیسک به میله کمکی، انتقال دیسک آخر به مقصد، و سپس انتقال دوباره  دیسک به میله مقصد<br />
ب) انتقال همه دیسک‌ها به یکباره به میله مقصد<br />
ج) انتقال بزرگ‌ترین دیسک به میله کمکی و ادامه کار<br />
د) انتقال تصادفی دیسک‌ها تا حل مسئله]]></description>
			<content:encoded><![CDATA[۱.هدف اصلی در حل مسئله برج هانوی چیست؟<br />
الف) مرتب کردن دیسک‌ها بر اساس اندازه<br />
ب) انتقال دیسک‌ها از یک میله به میله دیگر بدون شکستن قواعد<br />
ج) حذف دیسک‌های اضافی<br />
د) پیدا کردن کوتاه‌ترین مسیر<br />
<br />
۲.در مسئله برج هانوی، چه قانونی برای حرکت دیسک‌ها وجود دارد؟<br />
الف) دیسک کوچک‌تر نمی‌تواند روی دیسک بزرگ‌تر قرار گیرد.<br />
ب) دیسک بزرگ‌تر نمی‌تواند روی دیسک کوچک‌تر قرار گیرد.<br />
ج) دیسک‌ها باید به ترتیب اندازه جابه‌جا شوند.<br />
د) همه دیسک‌ها باید به طور همزمان جابه‌جا شوند.<br />
<br />
۳.حداقل تعداد حرکات مورد نیاز برای حل برج هانوی با 5 دیسک چند حرکت است؟<br />
الف) 15<br />
ب) 31<br />
ج) 63<br />
د) 127<br />
<br />
۴.کدام روش معمولاً برای حل مسئله برج هانوی استفاده می‌شود؟<br />
الف) جستجوی عمقی (DFS)<br />
ب) روش تقسیم و حل (Divide and Conquer)<br />
ج) برنامه‌ریزی پویا (Dynamic Programming)<br />
د) الگوریتم حریصانه (Greedy Algorithm)<br />
<br />
۵.اولین گام برای حل مسئله برج هانوی با سه دیسک چیست؟<br />
الف) انتقال کوچک‌ترین دیسک به میله کمکی<br />
ب) انتقال بزرگ‌ترین دیسک به میله مقصد<br />
ج) انتقال دیسک وسط به میله کمکی<br />
د) انتقال کوچک‌ترین دیسک به میله مقصد<br />
<br />
۶.در مسئله برج هانوی، کدام یک از موارد زیر در هر حرکت رعایت می‌شود؟<br />
الف) فقط یک دیسک در هر حرکت جابه‌جا شود.<br />
ب) چندین دیسک به صورت همزمان قابل جابه‌جایی هستند.<br />
ج) دیسک‌های کوچک‌تر همیشه در پایین‌ترین موقعیت قرار می‌گیرند.<br />
د) می‌توان دیسک‌ها را از وسط بازی حذف کرد.<br />
<br />
۷.برج هانوی برای چند دیسک با چه الگوریتمی می‌تواند بازگشتی حل شود؟<br />
الف) انتقال  دیسک به میله کمکی، انتقال دیسک آخر به مقصد، و سپس انتقال دوباره  دیسک به میله مقصد<br />
ب) انتقال همه دیسک‌ها به یکباره به میله مقصد<br />
ج) انتقال بزرگ‌ترین دیسک به میله کمکی و ادامه کار<br />
د) انتقال تصادفی دیسک‌ها تا حل مسئله]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[ساختمان داده_برج هانوی و کاربرد آن]]></title>
			<link>http://forum.kishtech.ir/showthread.php?tid=110520</link>
			<pubDate>Fri, 20 Dec 2024 00:06:28 +0330</pubDate>
			<dc:creator><![CDATA[<a href="http://forum.kishtech.ir/member.php?action=profile&uid=15773">محمد مهدی رمضانی</a>]]></dc:creator>
			<guid isPermaLink="false">http://forum.kishtech.ir/showthread.php?tid=110520</guid>
			<description><![CDATA[ساختمان داده_برج هانوی و کاربرد آن<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://forum.kishtech.ir/images/attachtypes/pdf.png" title="Adobe Acrobat PDF" border="0" alt=".pdf" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=5308" target="_blank" title="">برج هانوی و کاربرد آن- محمد مهدی رمضانی1.pdf</a> (اندازه:  453.45 KB / تعداد دفعات دریافت:  1)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[ساختمان داده_برج هانوی و کاربرد آن<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://forum.kishtech.ir/images/attachtypes/pdf.png" title="Adobe Acrobat PDF" border="0" alt=".pdf" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=5308" target="_blank" title="">برج هانوی و کاربرد آن- محمد مهدی رمضانی1.pdf</a> (اندازه:  453.45 KB / تعداد دفعات دریافت:  1)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[فصل 6 بخش 2 سوال 5]]></title>
			<link>http://forum.kishtech.ir/showthread.php?tid=110034</link>
			<pubDate>Tue, 17 Dec 2024 13:14:27 +0330</pubDate>
			<dc:creator><![CDATA[<a href="http://forum.kishtech.ir/member.php?action=profile&uid=15500">محمدجواد نوری نژاد</a>]]></dc:creator>
			<guid isPermaLink="false">http://forum.kishtech.ir/showthread.php?tid=110034</guid>
			<description><![CDATA[در اتصالات درخت نخی دودویی اگر سمت راست گره تهی باشد آنگاه آنرا طوری تغییر میدهیم که :<br />
<br />
1) به ریشه اصلی اشاره کند<br />
2) به گره بعدی در پیمایش inorder اشاره کند<br />
3) به گره بعدی در پیمایش preorder اشاره کند<br />
4) به راست ترین گره درخت اشاره کند]]></description>
			<content:encoded><![CDATA[در اتصالات درخت نخی دودویی اگر سمت راست گره تهی باشد آنگاه آنرا طوری تغییر میدهیم که :<br />
<br />
1) به ریشه اصلی اشاره کند<br />
2) به گره بعدی در پیمایش inorder اشاره کند<br />
3) به گره بعدی در پیمایش preorder اشاره کند<br />
4) به راست ترین گره درخت اشاره کند]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[فصل 6 بخش 2 سوال 4]]></title>
			<link>http://forum.kishtech.ir/showthread.php?tid=110033</link>
			<pubDate>Tue, 17 Dec 2024 13:11:08 +0330</pubDate>
			<dc:creator><![CDATA[<a href="http://forum.kishtech.ir/member.php?action=profile&uid=15500">محمدجواد نوری نژاد</a>]]></dc:creator>
			<guid isPermaLink="false">http://forum.kishtech.ir/showthread.php?tid=110033</guid>
			<description><![CDATA[پیمایش میانوندی به چه صورت شکل میگیرد؟<br />
<br />
1) فرزند راست، فرزند چپ، گره والد<br />
2) فرزند چپ، گره والد، فرزند راست<br />
3)فرزند راست، گره والد، فرزند چپ<br />
4، فرزند چپ، فرزند راست، گره والد]]></description>
			<content:encoded><![CDATA[پیمایش میانوندی به چه صورت شکل میگیرد؟<br />
<br />
1) فرزند راست، فرزند چپ، گره والد<br />
2) فرزند چپ، گره والد، فرزند راست<br />
3)فرزند راست، گره والد، فرزند چپ<br />
4، فرزند چپ، فرزند راست، گره والد]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[فصل 6 بخش 2 سوال 3]]></title>
			<link>http://forum.kishtech.ir/showthread.php?tid=110029</link>
			<pubDate>Tue, 17 Dec 2024 12:55:53 +0330</pubDate>
			<dc:creator><![CDATA[<a href="http://forum.kishtech.ir/member.php?action=profile&uid=15500">محمدجواد نوری نژاد</a>]]></dc:creator>
			<guid isPermaLink="false">http://forum.kishtech.ir/showthread.php?tid=110029</guid>
			<description><![CDATA[درخت ها به چند روش پیمایش میشوند؟<br />
<br />
1) پنج روش<br />
2) سه روش<br />
3) یک روش<br />
4) دو روش]]></description>
			<content:encoded><![CDATA[درخت ها به چند روش پیمایش میشوند؟<br />
<br />
1) پنج روش<br />
2) سه روش<br />
3) یک روش<br />
4) دو روش]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[فصل 6 بخش 2 سوال 2]]></title>
			<link>http://forum.kishtech.ir/showthread.php?tid=110026</link>
			<pubDate>Tue, 17 Dec 2024 12:41:41 +0330</pubDate>
			<dc:creator><![CDATA[<a href="http://forum.kishtech.ir/member.php?action=profile&uid=15500">محمدجواد نوری نژاد</a>]]></dc:creator>
			<guid isPermaLink="false">http://forum.kishtech.ir/showthread.php?tid=110026</guid>
			<description><![CDATA[تفاوت درخت دودویی و درخت عمومی چیست؟<br />
<br />
1) درخت دودویی نمیتواند تهی باشد ولی عمومی میتواند<br />
2) در درخت عمومی فرزند راست و چپ مطرح است ولی در درخت دودویی تفاوتی ندارد؟<br />
3) دخت دودویی میتواند تهی باشد ولی درخت عمومی نمیتواند<br />
4) تفاوتی باهم ندارند]]></description>
			<content:encoded><![CDATA[تفاوت درخت دودویی و درخت عمومی چیست؟<br />
<br />
1) درخت دودویی نمیتواند تهی باشد ولی عمومی میتواند<br />
2) در درخت عمومی فرزند راست و چپ مطرح است ولی در درخت دودویی تفاوتی ندارد؟<br />
3) دخت دودویی میتواند تهی باشد ولی درخت عمومی نمیتواند<br />
4) تفاوتی باهم ندارند]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[فصل 6 بخش 2 سوال 1]]></title>
			<link>http://forum.kishtech.ir/showthread.php?tid=110023</link>
			<pubDate>Tue, 17 Dec 2024 12:23:56 +0330</pubDate>
			<dc:creator><![CDATA[<a href="http://forum.kishtech.ir/member.php?action=profile&uid=15500">محمدجواد نوری نژاد</a>]]></dc:creator>
			<guid isPermaLink="false">http://forum.kishtech.ir/showthread.php?tid=110023</guid>
			<description><![CDATA[درخت عمومی دارای چند ریشه است؟<br />
<br />
1) تعداد ریشه ها دلخواه است<br />
2) یک ریشه<br />
3) حداقل 2ریشه<br />
4) حداکثر 2 ریشه]]></description>
			<content:encoded><![CDATA[درخت عمومی دارای چند ریشه است؟<br />
<br />
1) تعداد ریشه ها دلخواه است<br />
2) یک ریشه<br />
3) حداقل 2ریشه<br />
4) حداکثر 2 ریشه]]></content:encoded>
		</item>
	</channel>
</rss>