CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 6 of 6

Threaded View

  1. #1
    Join Date
    Oct 2015
    Posts
    13

    Question Parameters are not being accepted for my printArray function

    When I try to call printArray with data it will not let me compile or run my program I don't know what else would go in the parameters to allow the program to work. Anything helps thanks.

    Header:

    Code:
    #pragma once
    /*
    Header file for the priority queue class
    */
    #ifndef PRIORITYQUEUE_H
    #define PRIORITYQUEUE_H
    
    class priorityQueue
    {
    private:
        int size;
        int *data;
    
    public:
        static const int CAPACITY = 50;
        priorityQueue();//constructor
        ~priorityQueue();//destructor
        int getParent(int index);
        int getLeftChild(int index);
        int getRightChild(int index);
        void swap(int &, int &);
        void insert(int item); //enqueue - heap_insert
        void printArray(int []);
        void heapify(int index);
    
        //remove and return the smallest item currently in the priority queue
        int extractMin();//dequeue 
        bool empty() const;
        int min() const; //return the smallest item
    };
    #endif


    main:
    Code:
    #include <iostream>
    #include "priorityQueue.h"
    using namespace std;
    
    
    
    
    int main()
    {
    	priorityQueue myqueue; //class object
    	
    
    	if (myqueue.empty())
    		cout << "My priority Queue is empty\n" << endl; //prompt
    
    	myqueue.insert(59); //Insert value into queue
    	cout << "After inserting 59 Priority Queue has" << endl;
    	myqueue.heapify(59);
    	myqueue.printArray(data);
    	
    	myqueue.insert(41);
    	cout << "After inserting 41 Priority Queue has" << endl;
    	myqueue.heapify(41);
    	myqueue.printArray(data);
    	
    
    	myqueue.insert(25);
    	cout << "After inserting 25 Priority Queue has" << endl;
    	myqueue.heapify(25);
    	myqueue.printArray(data);
    	
    
    	myqueue.insert(12);
    	cout << "After inserting 12 Priority Queue has" << endl;
    	myqueue.heapify(12);
    	myqueue.printArray(data);
    	
    
    	myqueue.insert(91);
    	cout << "After inserting 91 Priority Queue has" << endl;
    	myqueue.heapify(91);
    	myqueue.printArray(data);
    
        myqueue.min();
        myqueue.extractMin();
    	cout << "After extracting the minimum value Priority Queue has" << endl;
    	myqueue.printArray(data);
    
    
    	myqueue.insert(34);
    	cout << "After inserting 34 Priority Queue has" << endl;
    	myqueue.heapify(34);
    	myqueue.printArray(data);
    
    	myqueue.insert(63);
    	cout << "After inserting 63 Priority Queue has" << endl;
    	myqueue.heapify(63);
    	myqueue.printArray(data);
    
        myqueue.extractMin();
    	cout << "After extracting the minimum value Priority Queue has" << endl;
    	myqueue.printArray(data);
    
    	myqueue.insert(75);
    	cout << "After inserting 75 Priority Queue has" << endl;
    	myqueue.heapify(75);
    	myqueue.printArray(data);
    
    	myqueue.insert(85);
    	cout << "After inserting 85 Priority Queue has" << endl;
    	myqueue.heapify(85);
    	myqueue.printArray(data);
    
    	myqueue.extractMin();
    	cout << "After extracting the minimum value Priority Queue has" << endl;
    	myqueue.printArray(data);
    
    
    
    	cout <<"Minimum value is " ; 
    	cout << myqueue.min() <<endl; //prints out heap min
    
    	system("pause");
    	return 0;
    }
    priorityQueue::priorityQueue() //constructor
    {
    	size = CAPACITY;
    	data = new int[size];
    }
    
    priorityQueue::~priorityQueue() //destructor
    {
    
    }
    
    int priorityQueue::getParent(int index) //finds parent
    {
    	return (index - 1) / 2;
    }
    
    int priorityQueue::getLeftChild(int index) //finds left child
    {
    	return (2 * index) + 1;
    }
    
    int priorityQueue::getRightChild(int index) //find right child
    {
    	return (2 * index) + 2;
    }
    
    void priorityQueue::swap(int& item1, int& item2) //swaps value of two variables
    {
    
    	int temp = item1;
    	item1 = item2;
    	item2 = temp;
    }
    
    void priorityQueue::heapify(int index)
    {
    	int largest = index;
    	int l = getLeftChild(index);
    	int r = getRightChild(index);
    
    	if (l < size && data[l] > data[index])
    	{
    		largest = l;
    	}
    
    	if (r < size && data[r] > data[largest])
    	{
    		largest = r;
    	}
    
    	if (largest != index)
    	{
    		swap(data[index], data[largest]);
    		heapify(largest);
    	}
    
    
    }
    
    void priorityQueue::printArray(int [])
    {
    	for (int i = 0; i < size; i++)
    	{
    		cout << data[i] << ", ";
    	}
    }
    
    
    int priorityQueue::extractMin() //finds min and removes it
    {
    	int min = data[0];
    	data[0] = data[size - 1];
    	size -= 1;
    	heapify(0);
    	return min;
    }
    
    int priorityQueue::min() const // finds min
    {
    	return data[0];
    }
    
    bool priorityQueue::empty() const // checks if heap is empty
    {
    	if (data == NULL)
    	{
    		return true;
    	}
    	else
    	{
    		return false;
    	}
    }
    
    void priorityQueue::insert(int item)
    {
    	size += 1;
    	int i = size - 1;
    	while (i > 0 && data[getParent(i)] < item)
    	{
    		data[i] = data[getParent(i)];
    		i = getParent(i);
    	}
    	data[i] = item;
    }
    Last edited by Bankaijoey; April 23rd, 2016 at 10:41 AM.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured