0

我为下面给出的二进制堆制作了一个程序 -

       #include<iostream>
     using namespace std;
        /**
         * Construct the binary heap.
         * capacity is the capacity of the binary heap.
         */

class BinaryHeap
        {

           private:
            int   currentSize;  // Number of elements in heap
            int array[];        // The heap array

            void buildHeap( );
            void percolateDown( int hole );
           public:
            bool isEmpty( ) const;
            bool isFull( ) const;
            int findmini( ) const;

            void insert( int x );
            void deleteMin( );
            void deleteMin( int minItem );
            void makeEmpty( );



       public :
       BinaryHeap(  )
        {
         currentSize = 0;
        }
      BinaryHeap( int capacity )
        {
          array[capacity + 1];
         currentSize = 0;
        }
};
int main()
{
     int resp, ch, choice;
     int n, i;
     cout << "enter the size of heap" << endl;
     cin >> n;
    BinaryHeap b(int n);
   cout << "enter the item " << endl;
      cin >> ch;
    b.insert( int ch);


return 0;
}

编译时出现错误

在“b”中请求成员“插入”,该成员属于非类类型“BinaryHeap(int)”
,并且预期在“int”之前的主表达式

为什么会发生这种情况,如何解决?

4

2 回答 2

5

intBinaryHeap b(int n);and中删除b.insert( int ch);,你就可以开始了。

当你调用一个函数时,你不应该指定你调用它的变量的数据类型。

于 2013-06-25T16:34:03.483 回答
1

尝试改变这个

b.insert( int ch);

对此:

b.insert(ch);
于 2013-06-25T16:35:40.577 回答