#include<iostream.h> #include<constream.h> template<class T> class IndirectList { private: int length; int MaxSize; T**table; public: IndirectList(int MaxLinearSize=10); ~IndirectList();//destructor int IsEmpty()const{return length==0;} int Length()const{return length;} int Find(int k,T&x)const; int Search(const T&x)const; void Delete(int k,T&x); void Insert(int k,const T&x); void Output()const; }; template<class T> IndirectList<T>::IndirectList(int MaxListSize) { MaxSize=MaxListSize; table=new T*[MaxSize]; length=0; } template<class T> IndirectList<T>::~IndirectList() { for(int i=0;i<length;i++) delete table[i]; delete[]table; } template<class T> int IndirectList<T>::Find(int k,T&x)const { if(k<1||k>length) return 0; //no kth element if(x==*table[k-1]) return 1; else return 0; } template<class T> int IndirectList<T>::Search(const T&x)const { for(int i=0;i<length;i++) if(*table[i]==x) return ++i; return 0; } template<class T> void IndirectList<T>::Delete(int k,T&x) { if(Find(k,x)) { for(int i=k;i<length;i++) table[i-1]=table[i]; length--; } else cout<<"out of bounds\n"; } template<class T> void IndirectList<T>::Insert(int k,const T&x) { if(k<0||k>length) cout<<"out of bounds\n"; if(length==MaxSize) cout<<"no memory\n"; for(int i=length-1;i>=k;i--) table[i+1]=table[i]; table[k]=new T; *table[k]=x; length++; } template<class T> void IndirectList<T>::Output()const { if(IsEmpty()) cout<<"list is empty\n"; else for(int i=0;i<length;i++) cout<<*table[i]<<"\t"; } void menu() { cout<<"\n MENU\n"; cout<<"1.Length\n"; cout<<"2.Find\n"; cout<<"3.Search\n"; cout<<"4.Delete\n"; cout<<"5.Insert\n"; cout<<"6.Output\n"; } void main() { int choice; int k,x,len,p; clrscr(); IndirectList<int>obj; do { menu(); cout<<"enter choice\n"; cin>>choice; switch(choice) { case 1: len=obj.Length(); if(len==0) cout<<"List is empty\n"; else cout<<"length of Indirectlist is "<<len<<endl; break; case 2: cout<<"enter k,x(position and value)\n"; cin>>k>>x; p=obj.Find(k,x); if(p==1) cout<<"found"<<endl; if(p==0) cout<<"not found"<<endl; break; case 3: cout<<"enter x(value)\n"; cin>>x; p=obj.Search(x); if(p) cout<<"searching is sucessful and found at "<<p<<endl; else cout<<"searching not sucessful"<<endl; break; case 4: cout<<"enter k,x(position and value)\n"; cin>>k>>x; obj.Delete(k,x); break; case 5: cout<<"enter k,x(index and value)\n"; cin>>k>>x; obj.Insert(k,x); break; case 6: cout<<"elements in the list are:\n\n"; obj.Output(); break; default: cout<<"invalid choice\n"; } } while(choice>=1&&choice<=6); getch(); } |
ADB commands for Android
Android
What are C Tokens?
C/C++
Least Recently Used Paging Algorithm
Advanced programs
First In First Out Page Replacement Algorithm
Simple programs
Java Program to find the IP address of the Machine
Basic Programs
Palindrome checking using function overloading
Advanced programs
I used to be suggested this website by means of my cousin. I'm now not sure wh...
sir i am making this project. so please send me all the details of this. thanku ...
sorry line no. 71...
in Line no. 73 there should be (ch == ')')...
u have wrote a wrong program .u have to big mistake in the program .u have writt...