Форум программистов, компьютерный форум CyberForum.ru

Реализация двоичной кучи(пирамиды)!!! - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ действие над матрицами(на С) http://www.cyberforum.ru/cpp-beginners/thread224853.html
у меня возникли проблемки с матрицами, задачки не сложние, кто хорошо понимает в матрицах, напишите плс 1)Заполнить матрицу случайными числами. Разбить матрицу на квадраты размером 3х3. В центре каждого квадрата поместить сумму остальных элементов квадрата. 2)Заполнить матрицу случайными числами. Отобразить правую половину матрицы на левую зеркально симметрично относительно вертикальной оси....
C++ мне не ясен цикл do while #include "stdafx.h" #include <iostream> #include <cstdlib> using namespace std; void drill(); int count; // count and num_right are global int num_right; http://www.cyberforum.ru/cpp-beginners/thread224851.html
C++ создание игры "Точки"
я только начел программировать. может кто-то уже делал?? Выложите код, чтобы разобраться)
C++ библиотеки в С++
#include <iostream> #include <algorithm> #include <iterator> #include <string> что значат эти библиотеки
C++ Даны таблицы А[1..n] ,В[1..m]. Построить таблицу С в которой сначала размещаются все элементы А, затем все элементы таблицы В http://www.cyberforum.ru/cpp-beginners/thread224839.html
кто сможет решите: Даны таблицы А ,В. Построить таблицу С в которой сначала размещаются все элементы А, затем все элементы таблицы В
C++ Приведение подобны Приведение подобных. Многочлен произвольного вида с одним неизвестным задан символьной строкой. Неизвестное выражение представлено одной буквой, операция возведения в степень обозначается "^". Преобразовать многочлен к нормальному виду, приведя подобные члены и определив его массивом коэффициентов. Если подобных членов не окажется, вывести соответствующее сообщение. подробнее

Показать сообщение отдельно
Nyto4ka
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 22
06.01.2011, 16:26     Реализация двоичной кучи(пирамиды)!!!
Горит расчетная работа на тему "Пирамиды"(другое название "двоичная куча"). Нужно реализовать эту структуру данных, добавление и удаление элементов, и поиск. Реализация пирамиды в виде массива есть, а со всем остальным проблема. ПОМОГИТЕ ПОЖАЛУЙСТА!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
 #include <stdio.h>
const long int MaxV = 5000;
long int a[MaxV];//массив для временного хранения элементов
long int n,i;//
//Our heap variables
long int heap[MaxV];//основной массив нашей кучи
long int nheap, tmp;//размер нашей кучи(количество элементов, находящихся на данный момент в куче)
 /*инициализация кучи*/  
  void InitHeap(void){
    nheap = 0;//обнуляем текущее количество элементов
}
  /*"исправление" кучи*/
        void MoveUp(long int ind){
long int k;
k = ind / 2;
if( ind > 1 ){
if( heap[ind] < heap[k] ){
tmp = heap[ind];
heap[ind] = heap[k];
heap[k] = tmp;
MoveUp(k);
}
}
}
 /*добавление элемента в кучу*/         void HeapAdd(long int x){
nheap++;
heap[nheap] = x;
MoveUp(nheap);
}
       void MoveDown(long int ind){
long int k;
k = ind * 2;
if(k <= nheap){
     if( (k+1 <= nheap) && (heap[k] > heap[k+1]) ) k++;
if( heap[ind] > heap[k] ){
tmp = heap[ind];
heap[ind] = heap[k];
heap[k] = tmp;
MoveDown(k);
}
}
}
 
          long int ExtractMin(void){
long int value;
value = heap[1];
heap[1] = heap[nheap];
heap[nheap] = 0;
nheap--;
MoveDown(1);
return value;
}
 
int main(void){
InitHeap();
printf("Insert (N)umber of elements:\n");
scanf("%d",&n);
printf("Insert array, please:\n");
for(i=0; i<n; i++){
scanf("%d",&tmp);
HeapAdd(tmp);
}
for(i=0; i<n; i++){
a[i] = ExtractMin();
}
printf("Sorted array is:\n");
for(i=0; i<n; i++) printf("%d ",a[i]);
printf("\n");
fflush(stdin);
getchar();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru