2017 universities Ranking in Pakistan

Here are overall top universities of Pakistan.Some universities are at the top place in engineering fields but others are at Applied science, BA and in IT programs

Binary Search in C++

Search found at index

Quick sorting program

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Tree traversal (preorder,inorder,postorder) using linklist (c++)

Tree traversal (preorder,inorder,postorder) using linklist (c++)

Sunday 23 December 2018

Tree traversal (preorder,inorder,postorder) using linklist (c++)



#include<iostream>
using namespace std;

struct node
{
    int data;
    struct node *left;
    struct node *right;
};

/**********Element insertion*****************/

node* insert(node *root,int data)
{
    if(root==NULL)
    {
        root=new node();
        root->data=data;
        root->left=root->right=NULL;
    }
    else if(data<=root->data)
    {
        root->left=insert(root->left,data);
    }
    else
    {
        root->right=insert(root->right,data);
    }
    return root;
}

/*************Printing in preorder*************/

void preorder(node *root)
{
    if(root==NULL)
    return;

    cout<<" "<<root->data;
    preorder(root->left);
    preorder(root->right);
}

/**************printing in inorder************/

void inorder(node *root)
{
    if(root==NULL)
    return;

    inorder(root->left);
    cout<<" "<<root->data;
    inorder(root->right);
}

/**********printing in postorder************/

void postorder(node *root)
{
    if(root==NULL)
    return;
    postorder(root->left);
    postorder(root->right);
    cout<<" "<<root->data;

}

/**************Driver Function***********/
int main()
{
    node *root=NULL;

    root=insert(root,10);
    root=insert(root,20);
    root=insert(root,30);
    root=insert(root,15);
    root=insert(root,9);
    root=insert(root,25);


    cout<<"\n preorder"<<endl;
    preorder(root);
    cout<<"\n Inorder"<<endl;
    inorder(root);
    cout<<"\n Postorder"<<endl;
    postorder(root);
    cout<<endl;


    return 0;
}

output:


Saturday 22 December 2018

Implementation of queue using linklist (C++)


#include<iostream>
using namespace std;

struct queue
{
    int data;
    struct queue *next;
};

 queue *front=NULL;
 queue *rear=NULL;
    int count=0;
/**********Inserting Element in Queue******************/
void enqueue(int x)
{
  queue *temp;
  temp=new queue();
  temp->data=x;
  temp->next=NULL;
  if(front==NULL && rear==NULL)
  {
      front=rear=temp;
      count++;
  }
  else
  {
      rear->next=temp;
      rear=temp;
      count++;
  }
}
/*********displaying elements in Queue********************/

void display(int count)
{
    queue *temp;
    temp=front;
    for(int i=0;i<count;i++)
    {
        cout<<temp->data<<" ";
        temp=temp->next;
    }
}
/*******Removing element from Queue*********************/

void dequeue()
{
    if(front==NULL)
    {
        cout<<"Queue is empty"<<endl;
    }
    else
    {
        queue *temp;
        temp=front;
        front=front->next;
        delete temp;
        count--;

        cout<<" \n Item Dequeued Successfully"<<endl;
    }
}

/****************Driver Function************************/

int main()
{
    int choice;
    int x;
    do
    {
        cout<<"Enter element is Queue :"<<endl;
        cin>>x;
        enqueue(x);


    cout<<"Do you want to enQueue again?"<<endl;
    cin>>choice;
    }while(choice==1);

    cout<<"After Enqueue"<<endl;
    display(count);

    do
    {
    dequeue();
    cout<<"Do you want to DeQueue again?"<<endl;
    cin>>choice;
    }while(choice==1);

    cout<<"After dequeue"<<endl;
    display(count);

    return 0;

}

Sunday 16 December 2018

Circular queue using array(insertion, deletion)


#include <iostream>
using namespace std;

int Q[10];
int size=10;
int count=0;
int rear=0;
int front=0;
void enQ(int element)
{
   if(count==size)
   {
       cout<<"Queue Overflow"<<endl;
   }
   else
   {
       Q[rear]=element;
       rear=(rear+1)%size;
       count++;
   }
}
void DeQ()
{
    if(count==0)
    {
        cout<<"Under Flow"<<endl;
    }
    else
    {
        Q[front]=0;
        front=(front+1)%size;
        count--;
    }
}
bool isempty()
{
    if(count==0)
    {
        return true;
    }
}

int main()
{
    int element;
    int e;

    if(isempty()==true)
    {
        cout<<"Queue is empty"<<endl;
    }
    /*************Enqueue*************/
    do
    {
    cout<<"Enter element in queue:"<<endl;
    cin>>element;
    enQ(element);
    cout<<"Do you want enqueue again?" <<endl;
    cin>>e;
    }while(e==1);
    /************display*************/
    cout<<"After inserting value in circular queue"<<endl;
    for(int i=front;i<=count;i++)
    {
        cout<<Q[i]<<" ";
    }
    /***************deletion***************/
    int d;
    cout<<"Do you want to delete from the queue(1=y): "<<endl;
    cin>>d;

    if(d==1)
    {
        int c;
        do
        {

        DeQ();

        cout<<"DO you want to enqueue again?(1=y)"<<endl;
        cin>>c;
        }while(c==1);
    }

    /************display*************/

    cout<<"After Dequeuing"<<endl;
    for(int i=front;i<=count;i++)
    {
        cout<<Q[i]<<" ";
    }

    return 0;
}

Doubly Linklist (insertion,deletion of a node)



#include <iostream>
using namespace std;
struct node2
{
    int data2;
    struct node2 *previous;
    struct node2 *next2;
};
int main()
{
    node2 *head2;
    node2 *last2;
    node2 *temp2;
    last2=0;
    int choice;
    do
    {
    cout<<"Enter data in Doubly node:"<<endl;
    temp2=new node2();
    cin>>temp2->data2;
    if(last2==0)
    {
        temp2->next2=0;
        temp2->previous=0;
        last2=head2=temp2;
    }
    else
    {
        temp2->next2=0;
        temp2->previous=last2;
        last2->next2=temp2;
        last2=temp2;
    }
    cout<<"\nDo you want to create a new node (1=yes,0=NO): ";
    cin>>choice;
    }while(choice==1);
    cout<<"Printing from start"<<endl;
    temp2=head2;
    while(temp2!=0)
    {
      cout<<temp2->data2<<" ";
     temp2=temp2->next2;
    }
    cout<<"\n Printing from end"<<endl;
    temp2=last2;
    while(temp2!=0)
    {
      cout<<temp2->data2<<" ";
     temp2=temp2->previous;
    }
   /******************************************/
       do
    {
    cout<<"Enter data"<<endl;
    temp2=new node2();
    cin>>temp2->data2;
    if(last2==0)
    {
        temp2->next2=0;
        temp2->previous=0;
        last2=head2=temp2;
    }
    else
    {
        temp2->next2=head2;
        temp2->previous=0;
        head2->previous=temp2;
        head2=temp2;
    }
    cout<<"\nDo you want to create a new node (1=yes,0=NO): ";
    cin>>choice;
    }while(choice==1);
    cout<<"\n Printing from start"<<endl;
    temp2=head2;
    while(temp2!=0)
    {
      cout<<temp2->data2<<" ";
     temp2=temp2->next2;
    }
    return 0;
}