public void VlozPrvek(TData vkladanyPrvek, int priorita) { PrvekHaldy obecnyPrvek = new PrvekHaldy(); obecnyPrvek.Informace = vkladanyPrvek; obecnyPrvek.Priorita = priorita; VlozPrvek(obecnyPrvek); }
/// <summary> /// Vkládá prvek do haldy. /// </summary> /// <param name="vkladanyPrvek">Prvek, který se bude vkládat do haldy.</param> private void VlozPrvek(PrvekHaldy vkladanyPrvek) { haldaGertruda.Add(vkladanyPrvek); int indexDitete = haldaGertruda.Count - 1; int indexOtce = (indexDitete - 1) / 2; while (haldaGertruda[indexOtce].Priorita > haldaGertruda[indexDitete].Priorita) { PrvekHaldy docasnyPrvek = haldaGertruda[indexDitete]; haldaGertruda[indexDitete] = haldaGertruda[indexOtce]; haldaGertruda[indexOtce] = docasnyPrvek; indexDitete = indexOtce; indexOtce = (indexDitete - 1) / 2; } }