#include<iostream>
#include<cstdlib>
#include<cmath>
#include<cstring>
#define MAX_LEVEL 6
const float P=0.5;
using namespace std;
/* Skip Node Declaratiom */
struct snode
{
int value;
snode **forw;
snode(int level, int &value)
{
forw= new snode *[level+1];
memset(forw,'0', sizeof(snode)*(level+1));
this->value=value;
}
~snode()
{
delete []forw;
}
};
/* Skip List Declaration */
struct skiplist
{
snode *header;
int value;
int level;
skiplist()
{
header=new snode(MAX_LEVEL, value);
level=0;
}
~skiplist()
{
delete header;
}
void display();
bool contains(int &);
void insert_element(int &);
void delete_element(int &);
};
/* Main: COntains Menu */
int main()
{
skiplist ss;
int choice, n;
while(1)
{
cout<<endl<<"------------"<<endl;
cout<<endl<<"Operations on Skip List"<<endl;
cout<<endl<<"------------"<<endl;
cout<<"1. Insert Element"<<endl;
cout<<"2. Delete Element"<<endl;
cout<<"3. Search Element"<<endl;
cout<<"4. Display List"<<endl;
cout<<"5. Exit"<<endl;
cout<<"Enter your choice: ";
cin>>choice;
switch(choice)
{
case 1:
cout<<"Enter the element to be inserted: ";
cin>>n;
ss.insert_element(n);
if(ss.contains(n))
cout<<"Element Inserted"<<endl;
break;
case 2:
cout<<"Enter the element to be deleted: ";
cin>>n;
if(!ss.contains(n))
{
cout<<"Element not found"<<endl;
break;
}
ss.delete_element(n);
if(!ss.contains(n))
cout<<"Element Deleted"<<endl;
break;
case 3:
cout<<"Enter the element to be searched: ";
cin>>n;
if(ss.contains(n))
cout<<"Element "<<n<<" is in the list"<<endl;
else
cout<<"Element not found"<<endl;
case 4:
cout<<"The List is: ";
ss.display();
break;
case 5:
exit(1);
break;
default:
cout<<"Wrong Choice"<<endl;
}
}
return 0;
}
Friday, September 23, 2016
Data structures- skiplist
Labels:
data structures,
skiplist
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment