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

Работа с бинарной кучей - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу которая находит файлы, созданные в нерабочее время http://www.cyberforum.ru/cpp-beginners/thread430626.html
Написать программу которая находит фаайлы, созданные в нерабочее время. Понятия не имею как такое сделать, знаю как искать файлы, но в нерабочее время понятия не имею как... Наверно файлы которые были созданы пока за ним никого не было. Кто нибудь может помочь?
C++ Сформировать строку вдвое большей длины, где каждый символ дополняется пробелом Задание: ввести строку символов. Сформировать строку вдвое большей длины, где каждый символ предворяется пробелом. Вывести полученную строку. Вот код программы: #include <conio.h> #include <iostream.h> #include <string.h> void main() { clrscr(); char x; http://www.cyberforum.ru/cpp-beginners/thread430624.html
Как ограничить доступ к внешним устройствам и не только C++
Руководство компании поставило задачу по информационной безопасности компании: ограничить доступ сотрудников к USB портам, Wi Fi и Bluetooth, дисководам и приводам рабочих компьютеров, но не всем все закрыть, а с учетом настраиваемых групп или политик пользователей. C помощью какой программы легче всего это сделать? Ну и что бы подешевле было?
Глюк системы или кривой код? C++
Программа должна быть сдана уже завтра, но работать нормально она отказывается. Сделана и тестируется через VS 2008. Проблема такова: При запуске программы в режиме "запуска без отладки" выполняет все действия, кроме нормального чтения из файла (бинарного). Есть 2 тестовых файла, один запускается (test.bin), второй - нет(test2.bin), вылетает системная ошибка, что мол приложение не отвечает и...
C++ Чем можно заменить выражение b=SQEARE(4,5+2,5)? http://www.cyberforum.ru/cpp-beginners/thread430600.html
Объясните, пожалуйста, что это за функция
C++ Visual studio 2008 C++ Вычислите сумму элементов верхнего правого треугольника матрицы и количество элементов в нем. матрица размером 5x5 подробнее

Показать сообщение отдельно
Rena
0 / 0 / 0
Регистрация: 15.01.2012
Сообщений: 9

Работа с бинарной кучей - C++

18.01.2012, 17:41. Просмотров 1008. Ответов 0
Метки (Все метки)

У меня есть программа связанная с бинарной кучей,добавлением в неё элемента, поиска необходимого и его удаление.Но в ней есть неполадки, не вставляет в корень наибольший элемент и при удалении дублирует последний или предпоследний элемент. Помогите в решении и объясните пожалуйста. Заранее спасибо!

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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
// kucha.cpp: главный файл проекта.
 
 
 
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
int kol=0;
struct heap
{ int p; char s[10];};
heap mas[20];
void outputheap ();
void inputheap();
void sort(int g);
void seakheap();
void delheap();
void del0();
 
 
void outputheap ()
{ int i=1,j; float k=1;
cout<<mas[0].p<<":"<<mas[0].s<<endl;
while (i<=kol)
{
 for (j=1;j<=pow(2,k) && kol>=i;j++)
 {cout<<mas[i].p<<":"<<mas[i].s<<"\t";i++;} k++;
 
 cout<<endl;}
}
 
void inputheap()
{ cin>>mas[kol].p>>mas[kol].s;
if (kol!=0) sort(kol);
kol++;
}
 
void sort(int g)
{ int i;
if (g%2==0)
i=(g-2)/2;
else i=(g-1)/2;
if (mas[g].p>mas[i].p)
{heap c=mas[g];
mas[g]=mas[i];
mas[i]=c;
g=i; 
sort(g);}
}
 
void seakheap()
{ char s2[10];
cin>>s2;
int i;
for(i=0; i<=kol; i++)
if (strcmp(s2, mas[i].s)==0)
cout<<i<<":"<<mas[i].p<<"-"<<mas[i].s<<endl;
}
 
void delheap()
{char s2[10];
int i,g;
cin>>s2;
for (i=0; i<=kol; i++)
if (strcmp(s2,mas[i].s)==0)
{
 
for (g=i+1;g<kol;g++)
mas[g-1]=mas[g];
kol--;
}
else
cout<<"\n now"<<endl;
if (i==kol)
kol=kol-1; 
else 
 
 if ((mas[2*i+1].p==mas[2*i+2].p)&& (mas[2*i+2].p==0))
 { mas[i]=mas[i+1];
 del0 ();
 }
 
 if (mas[2*i+2].p>0)
 { mas[2*i+2].p=0; sort (2*i+1);
 del0 ();
 }
 
 else 
  if (mas[2*i+2].p>0)
  {
   mas[i]=mas[2*i+2];
 mas[2*i+2].p=0; 
 sort (2*i+2);
 del0 ();
 }
}
 void del0()
 { 
  int i=0;
  for (i=0; i<=kol-1; i++)
   if (mas[i].p==0)
   {
    for (int j=i+1; j<=kol; j++)
    { mas[j-1]=mas[j]; sort(j);
    }
mas[kol].p=0;
kol--;
   }
 }
 
void main ()
{
 kol=0;
 for (int i=0;i<20;i++) mas[i].p=0;
 int f=0;
 
 while (f==0)
 {
  inputheap();
  cout<<"nazmite 1 esli xotite vyiti";
  cin>>f;
 }
 cout<<"\n kucha"<<endl;
 outputheap ();
 cout<<"\n poisk:"<<endl;
 seakheap ();
 cout<<"\n delete:"<<endl;
 delheap ();
    del0();
 outputheap ();
 system ("pause");
}
void insertsort(int i,int mas[20])
{
 int k,j,temp;
 for (k=0;k<i;k++)
 {
  temp=mas[k];
  for (j=k-1;j>=0 && mas[j]>temp;j--)
   mas[j+1]=mas[j];
  mas[j+1]=temp;
 }
}
 Комментарий модератора 
Именуйте темы осмысленно!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru