نمایش نتایج 1 تا 6 از 6

نام تاپیک: Max Heap

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #2
    کاربر دائمی آواتار pesar irooni
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    تهران
    سن
    42
    پست
    495
    با عرض سلا م وخسته نباشی خدمت شما دوست عزیز.
    ببینید من برنامه شما رو دیدم ولی انگار شما مقصودتون رو از نوشتن یک maxHeap نمی دونید. maxHeap درختیه که از اون تو مرتب سازی از نوع HeapSort استفاده می کنند. بنابر این هنگام حذف یک عنصر تنها باید از ریشه حذف کرد و سپس دوباره درخت رو مرتب کرد (نه اینکه هر عنصر رو از هر کجا دلمون خواست حذف کنیم). من استراتژی شما رو تو متد max_heapfy دقیق متوجه نشدم ولی برای درج یک عنصر توی maxHeap ابتدا باید اون رو به آخرین عنصر آرایه اضافه کرد (برای اینکه ساختار درخت به صورت دودویی کامل بماند) و سپس درخت رو مرتب کرد. یعنی عنصر جدید به سمت جایگاه اصلی اش تو دخت به بالا حرکت می کنه و در صورت لزوم جاش رو با پدرش عوض می کنه . من این کار رو تو تابع عمل درج تو این درخت انجام دادم و برات نوشتم؛ امیدوارم بدردت بخوره.

    void maxHeapInsert(int nodes[], int n, int x)
    {
    int i = n+1; // n+1 is location in end of tree
    int j = i/2; // i div 2 ** j is index of i's parrent
    while((j>0) && (nodes[j]<x((
    // j>0 that is dosent arrive to root
    // nodes[j]<x that is x is larger than its parent
    }
    nodes[i] = nodes[j]; //replace parent in child
    i = j;
    j = i/2; // j is parent of i
    {

    nodes[i] = x; // i is right location of x
    {


    اگه خواستی الگوریتم حذفش هم برات می نویسم.
    آخرین ویرایش به وسیله whitehat : جمعه 26 بهمن 1386 در 22:54 عصر دلیل: اضافه کردن تگ کد

تاپیک های مشابه

  1. stack & heap
    نوشته شده توسط mohsenaminzare در بخش VB.NET
    پاسخ: 1
    آخرین پست: شنبه 20 بهمن 1386, 19:36 عصر
  2. Stack & Heap Memory
    نوشته شده توسط mr_esmaily در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 2
    آخرین پست: چهارشنبه 22 تیر 1384, 11:22 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

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