mohmmadr5651

نحوه گرفتن و بررسی تمام زیر پوشه های یک پوشه

mohmmadr5651 ۱۳۹۷/۰۷/۱۹ 126 مباحث عمومی برنامه‌نویسی

سلام میخوام یک برنامه بسازم که لیست تمام زیر پوشه های و لیست تمام زیر پوشه زیر پوشه ها و... تا ته به دست بیارم و در یک آرایه ذخیره کنم اما دقیقا نمیدونم چطور کسی الگوریتمی سراغ نداره؟(اگه شد به زبان های دات نت)

ممنون میشم اگه جواب بدید

پاسخ‌ها به این تاپیک
امیررضا اقتداری
امیررضا اقتداریدولوپر ios هستم، برنامه‌نویسی و گرافیک رو بسیار دوست دارم.
۱۳۹۷/۰۷/۱۹

برای حل چنین مسائلی باید از الگوریتم ریکرسیو (Recursive ) استفاده کنی. یکی از کاربردهای این الگوریتم جست و جو در ساختارهای درختی است. یعنی دقیقا همون چیزی که شما دنبالش هستید. در این نوع الگوریتم یک فانکشن تا زمانی که به نتیجه مورد نظر نرسیده خودش، خودش رو call میکنه. جهت آشنایی در موردش گوگل کنید. یه کتاب ریاضیات گسسته هم هست نوشته Knneth H.Rosen که در مورد این نوع الگوریتم شرح داده. 

موفق باشید. 

mohmmadr5651
mohmmadr5651
۱۳۹۷/۰۷/۱۹

ممنونم

کجا میتونم پیداش کنم ؟

در پاسخ به

امیررضا اقتداری
امیررضا اقتداریدولوپر ios هستم، برنامه‌نویسی و گرافیک رو بسیار دوست دارم.
۱۳۹۷/۰۷/۱۹

اگه منظورت کتاب هستش، اسم دقیقش هست Discrete Mathematics and Its Applications انتشارات McGraw-Hill هست. ممکنه بتونی از طریق آمازون یا سایر فروشگاه‌های آنلاین بخریش ولی بازهم توصیه می‌کنم Google کنی. فکر می‌کنم بتونی مطالب به درد بخوری پیدا کنی، خصوصا که مساله مورد نظر شما مورد پیچیده‌ای نیست.

در پاسخ به

mohmmadr5651
mohmmadr5651
۱۳۹۷/۰۷/۱۹

ممنونم

در پاسخ به

امیررضا اقتداری
امیررضا اقتداریدولوپر ios هستم، برنامه‌نویسی و گرافیک رو بسیار دوست دارم.
۱۳۹۷/۰۷/۱۹

خواهش‌میکنم، واسه اینکه کارت راه بیفته و یه چلنجی هم باشه واسه خودم یه تیکه سودوکد برات نوشتم که فکر می‌کنم کارت رو راه بندازه. این کد بر اساس الگوریتم ریکرسیو هست. همونطور که قبلا هم گفتم، توی الگوریتم ریکرسیو یه فانکشن اونقدر خودش، خودش رو کال میکنه تا همه حالت‌های ممکن پوشش داده بشه و به جواب نهایی برسه.

توی این کد من فرض کردم که یه فانکشن دارم به اسم listItems که مسیر یک دیرکتوری رو بهش میدی و اون فانکشن نام فایل‌های داخل دیرکتوری و همچنین نام تمام فایل‌هایی که در ساب دیرکتوری‌های اون دیرکتوری هستند رو در یک لیست ذخیره میکنه.

func listItems(directory) {
	for each item in directory {
		if item is file {
			add its name to the list
		} else {
			listItems(item)
		}
	}
}

ضمنا این رو هم بگم که این تیپ کارهارو با حلقه‌های معمولی هم میشه نوشت ولی بسیار سخت، پیچیده و حجیم میشه به طوری که اصلا قابل قیاس با چند خط کد بالا نیست پس اصلا بهشون فکر نکنید و سعی کنید این چهار خط رو خوب درک کنید.

در پاسخ به