ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی “ ورود به حساب” کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمیشود، اینجا را کلیک کنید.





صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 11
  1. #1
    sina
    sina
    Guest

    نكاتي در مورد ساختمان داده

    سلام
    مطالب مفيد مربوط به ساختمان داده رو با كمك دوستان تو اون جمع كنيم تا يه تاپيك جالبي به وجود بياد. من خودم كه چيز زيادي بلد نيستم فقط الگوريتمها و ... تو دانشگاه گفتن رو بلدم كه اونارو هم يكي يكي ميذارم.
    از دوستان خواهش ميكنم اگه مطلبي دارن كه مفيد ميتونه باشه دريغ نكنند. با تشكر
  2. 1
  3. #2
    sina
    sina
    Guest
    اينم رئوس مطالب

    1)آرائه

    2)پشته

    3)صف

    4)لیست هاي پيوندي (يك طرفه خطي و ...)

    5)درخت

    6)گراف
  4. #3
    sina
    sina
    Guest
    اصلا ميگم اين ساختمان داده چيست؟
    عبارت است از ساختارهای دادهای که درحافظهء اصلی کامپیوتر در نظرمی گیریم تا بتوانیم الگوریتمهای برنامه نویسی را بر روی آنها به شکل مناسب پیاده سازی نماییم.
  5. #4
    sina
    sina
    Guest
    آرایه:
    مجموعه ای از داده ها هستند که نوعشان یکسان است به عنوان مثال:اگر 10 عدد صحیح را بخواهیم در حافظه اصلی قرار دهیم بجای انکه 10 متغیر (int) تعریف بکنیم یک آرایه (int) تعریف می کنیم که 10 خانه داشته باشد .

    [Int b [3][4 = آرایه 2 بعدی : مثال




    آرایه های 2 بعدی را ماتریس نیز می گویند .

    در آرایه های 2 بعد به بالا برای اینکه بتوانیم عناصر را به صورت صحیح از خانه هایی که ذخیره شده اند بازیابی نماییم بایستی مشخص گردد که اگر ذخیرهء عناصر به شکل سطری است بازیابی آنها نیز به شکل سطری باشد و اگر ستونی است بازیابی انها به صورت ستونی باشد.



    روش سطری پیمایش و ذخیرهء آرایه ها :


    b11 , b12 , b13 , b14 , b21 , b22 , b23 , b24 , b31 , b32 , b33 , b34

    در پیمایش سطری آرایه ها اندیسهای خانه های آرایه از سمت راست تغییر می کنند بطوریکه اندیس سمت چپ به صورت ثابت باقی می ماند و یک واحد یک واحد به اندیس سمت راست اضافه می شود تا زمانیکه به ماکسیمم مقدار خود برسد که در این لحظه یک واحد به اندیس سمت چپ اضافه می شود و دوباره اندیس سمت راست شروع به افزایش می یابد واین کار تا زمانی ادامه پیدا می کند که هر 2 اندیس به ماکسیمم مقدار خود برسد.
    مثال : ماتریس 3 بعدی زیر را به صورت سطری پیمایش کنید:

    a111 , a211 , a311 , a121 , a221 , a321 , a131 , a231 , a331 , a141 , a241 , a341 , a112 , a212 , a312 , a122 , a222 , a322 , a132 , a232 , a332 , a142 , a242 , a342 , a113 , a213 , a313 , a123 , a223 , a323 , a133 , a233 , a333 , a143 , a243 , a343

    روش ستونی پیمایش ذخیره ها :

    در روش ستونی اندیسهای آرایه از سمت چپ شروع به افزایش می کنند یعنی اندیسهای سمت چپ یک واحد یک واحد اضافه می شوند تا زمانی که به ماکسیمم مقدار خود برسند که در این لحظه یک واحد اندیس سمت راست اضافه می شود و دوباره اندیس سمت چپ از 1 شروع به افزایش می کند و این کار تا زمانی انجام می گیرد که تمامی اندیسها به ماکسیمم مقدار خود برسند .
    b11 , b21, b31 , b12 , b22 , b32 , b13 , b23 , b33 , b14 , b24 , b34



    a111 , a211 , a311 , a121 , a221 , a321 , a131 , a231 , a331 , a141 , a241 , a341 , a112 , a212 , a312 , a122 , a222 , a322 , a132 , a232 , a332 , a142 , a242 , a342 , a113 , a213 , a313 , a123 , a223 , a323 , a133 , a233 , a333 , a143 , a243 , a343
  6. #5
    sina
    sina
    Guest
    ماتریس اسپارس (خلوت - پراکنده) :
    ماتریسی است که اکثریت عناصر ان مقدار ثابت و غیر قابل محاسبه ( معمولا صفر) می باشد و تنها تعداد کمی از خانه های ان داده ها به درد بخور می باشند بنابراین فضای بسیار زیادی از حافظه اصلی را برای ذخیره کردن این تعداد کم داده ها تلف می کنیم .


    مثال :


    0 0 0 2 0
    0 0 3 0 1
    0 0 0 0 0
    0 18 0 0 0

    به عنوان مثال در ماتریس فوق برای ذخیره کردن چهار عنصر غیر صفر یک ماتریس ( 5 * 4 ) و 20 خانه از حافظه را تلف کرده ایم روشی که برای ذخیرهء بهینهء این نوع ماتریسها استفاده می شود بدین صورت است که یک ماتریس در نظر می گیریم که همیشه 3 ستون خواهد داشت و به تعداد عناصر غیر صفر سطر خواهد داشت که در هر سطر در ستون اول شمارهء سطر مربوط به عنصر غیر صفر ودر ستون دوم شمارء مربوط به ستون عنصر غیر صفر ودر ستون سوم مقدار عنصر غیر صفر را ذخیره خواهیم کرد
    که کاهش قابل توجهی در میزان حافظه مصرفی خواهیم داشت.

    i j value
    2 2 1
    1 1 2
    3 3 2
    18 4 4
  7. 1
  8. #6
    sina
    sina
    Guest
    الگوريتمهاي مربوط به پيمايش هاي سطري و ستوني


    [A [n][m

    پیمایش سطری:

    for i: =1 to n do
    for j: =1 to m do
    write (a [i,j] ) ;


    پیمایش ستونی :
    for j: =1 to m do
    for i: =1 to n do
    write (a[i,j] ) ;



    مثال : با استفاده ازfor های تو در تو یک ماتریس 3 بعدی

    ( 2* 3 * 4 ) به 2 روش سطری و ستونی پیمایش کنید:



    پیمایش سطری:


    for i: =1 to 4 do

    for j: =1 to 3 do

    for k: =1 to 2 do

    write ( a [i,j,k] ) ;


    پیمایش ستونی :


    for k: =1 to 2 do

    for j: =1 to 3 do

    for i: =1 to 4 do

    write (a[i,j,k]) ;




    مثال : با استفاده از for های تو در تو الگوريتمي بنویسید که 2 ماتریس (2 * 3 * 4) رابا یکدیگر جمع کرده ودر ماتریس سوم قرار دهد:

    پیمایش سطری:


    for i: =1 to 4 do

    for j: =1 to 3 do

    for k: =1 to 2 do

    c [i,j,k] = b [ i,j,k] + a [i,j,k]

    write (c [i,j,k]) ;
  9. 1
  10. #7
    sina
    sina
    Guest
    پشته چیست؟
    پشته به لیست مرتبی گفته می شود که عملیات درج و حذف از اون از یک طرف صورت بگیره. عملکرد اون به صورت LIFO هست. (Last In First Out(. یعنی آخرین عنصر وردی، اولین عنصر خروجی هستش. مثل قرار دادن یک سری بشقاب روی هم دیگه که آخرین بشقاب قرار داده شده، اولین بشقابی هست که می شه اونو برداشت.
    اما مهمترین کاربرد پشته ذخیره آدرس های بازگشت تو برنامه نویسی و ساخت متغیرهای محلی در صدا زدن توابع است. یکی دیگه از کاربرد های مهم پشته اجرای عملیات undo و redo هست که همه باهاش کار کردیم.
  11. 1
  12. #8
    sina
    sina
    Guest
    نمایش پشته
    ساده ترین روش برای نمایش پشته استفاده از یک آرایه 1 بعدی به طول n می باشد. در کنار آرایه متغیری به نام top وجود دارد که به عنصر بالایی اشاره دارد. top در ابتدای کار صفر است و از 0 تا n تغییر می کند.
    شرط خالی بودن پشته عبارت است از : if top=0
    شرط پر بودن پشته عبارت است از : if top= n
    زیر برنامه های حذف از پشته (pop) و اضافه کردن به پشته یا نوشتن در آن (push) در زبان C به صورت زیر است:

    void push (item k)
    {
    if (top ==n-1)
    stackfull ();
    else
    ;stack[++top]=k
    }


    items pop()
    }
    if (top==-1)
    stackempty();
    else return stack [top--];
    {
  13. 1
  14. #9
    sina
    sina
    Guest
    پشته چندگانه:
    اگر فقط نیاز به دو پشته در برنامه داشته باشیم راه حل ساده است. برای این منظور از یک آرایه n خانه ای استفاده می کنیم. s[1] ابتدای پشته اول و s[n] ابتدای پشته دوم را نشان می دهد و پشته ها به سمت همدیگر می توانند رشد کنند. بدین ترتیب از حافظه موجد به صورت بهینه استفاده می شود.
    ولی اگر بخواهیم بیش از دو پشته داشته باشیم، روش فوق قابل استفاده نیست. در این حال برای نمایش n پشته حافظه s[1..n] را به n قسمت تقسیم می کنیم. تقسیم بندی آرایه ها متناسب با نیازها باشد. در این حالت مقادیر به صورت زیر خواهد بود:


    b[i]=t[i]=[m/n](i-1)+1


    که در آن n تعداد پشته ها و m حد بالای آرایه است.
    مثال: اگر در آرایه s[1..495] بخواهیم 4 پشته به وجود آوریمآدرس ابتدای هرپشته را بدست آورید. اندازه پشته ها یکسان است.

    پاسخ:
    m=495 , m=4
    b[1]=1
    b[2] [495/4](2-1)+1=124
    b[3]= [495/4](3-1)+1=247
    b[4]=[495/4](4-1)+1=370

    در حالت پشته های چندگانه (n>2) ممکن است یکی از پشته ها سریع تر از بقیه پر شود و به همین دلیل استفاده از حافظه بهینه نخواهد بود. برای رفع این مشکل باید عناصر شیفت داده شوند تا در انتهای پشته پشته پر شده فضای خالی تولید شود و این عمل در بدترین حالت o(m) خواهد بود. در پشته های چند گانه (n=2) استفاده از حافظه بهینه است و زمان پردازش نیز از مرتبه o(1) است.
  15. 1
  16. #10
    sina
    sina
    Guest
    صف (queue):

    صف لیست مرتبی است که عمل اضافه کردن (نوشتن) از یک طرف آن به نام انتهای صف (rear) و عمل خواندن (حذف کردن) از طرف دیگر صف به نام ابتدای صف (Front) می شود. ساختار صف به صورت FIFO است. (First In First Out). یکی از کاربردهای مهم صف در زمانبدی برنامه ها در سیستم عامل هستش. ساده ترین راه نمایش صف استفاده از یک آرایه یک بعدی به طول n می باشد.
    برای کار با صف معمولی به دو اشاره گر نیاز داریم: یکی Front که همیشه به یک عنصر قبل از عنصر ابتدایی اشاره می کنه و rear که همیشه به آخرین عنصر اشاره داره.
    دامنه تغییرات front و rear از 0 تا n هست و مقادیر اولیه اونها 0 قرار می گیره.
    شرط خال بودن صف عبارت است از :
    if front = rear
    و شرط پر بودن صف عبارت است از :
    if rear = n
  17. 1
صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 11

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. مقاله فارسي درباره سيستم مبدل هاي حرارتي
    توسط MspSoft در انجمن رشته مهندسي تاسيسات
    پاسخ: 5
    آخرين نوشته: 2015-09-18, 08:30 PM
  2. نمونه پروژه كار با بانك اطلاعاتي در vb6
    توسط MspSoft در انجمن پروژه‌های Open Source
    پاسخ: 0
    آخرين نوشته: 2012-04-21, 08:35 PM
  3. شبكه مخابراتي نسل سوم يا 3g چيست؟
    توسط MspSoft در انجمن تالار های مرتبط با شبکه و امنیت
    پاسخ: 0
    آخرين نوشته: 2012-04-14, 04:30 PM
  4. توابع مثلثاتي در visula basic
    توسط MspSoft در انجمن برنامه نویسی در 6 VB
    پاسخ: 0
    آخرين نوشته: 2012-01-29, 11:32 PM
  5. آشنايي و آموزش مقدماتي با زبان نويسي دلفي
    توسط MspSoft در انجمن برنامه نویسی در Delphi
    پاسخ: 8
    آخرين نوشته: 2011-11-25, 10:23 AM

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

Content Relevant URLs by vBSEO 3.6.0 RC 2