Skip to content

Instantly share code, notes, and snippets.

@lsiddiqsunny
Created September 6, 2017 18:56
Show Gist options
  • Save lsiddiqsunny/9b19cf9aa2b4bef18d0ed4f6dfcd42fa to your computer and use it in GitHub Desktop.
Save lsiddiqsunny/9b19cf9aa2b4bef18d0ed4f6dfcd42fa to your computer and use it in GitHub Desktop.
#include<bits/stdc++.h>
using namespace std;
int StringToNumber ( const char *c )
{
int r=0;
int k=0;
for(int i=strlen(c)-1; i>=0; i--)
{
r+=((c[i]-'0')*((int)pow(10,k)));
k++;
}
return r;
}
class ArrayList
{
int *a;
int SIZE;
public:
ArrayList ()
{
a=new int [10];
SIZE=0;
}
void Insert(int n)
{
int *p=new int [SIZE+5];
for(int i=0; i<SIZE; i++) p[i]=a[i];
delete(a);
a=new int [SIZE*2];
for(int i=0; i<SIZE; i++) a[i]=p[i];
delete(p);
a[SIZE]=n;
SIZE++;
for(int i=0; i<SIZE; i++) cout<<a[i]<<" ";
cout<<endl;
}
void Insert(int n,int m)
{
int *p=new int [SIZE+5];
int i;
for( i=0; i<m; i++) p[i]=a[i];
p[i]=n;
for(; i<SIZE; i++) p[i+1]=a[i];
delete(a);
a=new int [SIZE*2];
for(int i=0; i<=SIZE; i++) a[i]=p[i];
delete(p);
SIZE++;
for(int i=0; i<SIZE; i++) cout<<a[i]<<" ";
cout<<endl;
}
int deleteitem()
{
if(SIZE==0)
{
cout<<"EMPTY LIST"<<endl;
return -1;
}
else
{
int *p=new int [SIZE+5];
int n=a[SIZE-1];
for(int i=0; i<SIZE; i++) p[i]=a[i];
delete(a);
a=new int [SIZE+5];
for(int i=0; i<SIZE-1; i++) a[i]=p[i];
delete(p);
SIZE--;
if(SIZE==0)
{
cout<<"EMPTY LIST"<<endl;
}
else
{
for(int i=0; i<SIZE; i++) cout<<a[i]<<" ";
cout<<endl;
}
return n;
}
}
int deletefirstitem(int n)
{
if(SIZE==0)
{
cout<<"EMPTY LIST"<<endl;
return -1;
}
else
{
int *p=new int [SIZE+5];
bool flag=false;
for(int i=0; i<SIZE; i++)
{
if(a[i]==n)
{
flag=true;
}
if(!flag) p[i]=a[i];
else
{
p[i]=a[i+1];
}
}
if(flag==false)
{
cout<<"Element not found"<<endl;
return-1;
}
// for(int i=0; i<SIZE-1; i++) cout<<p[i]<<" ";
delete(a);
a=new int [SIZE*2];
for(int i=0; i<SIZE-1; i++) a[i]=p[i];
delete(p);
SIZE--;
if(SIZE==0)
{
cout<<"EMPTY LIST"<<endl;
}
else
{
for(int i=0; i<SIZE; i++) cout<<a[i]<<" ";
cout<<endl;
}
return n;
}
}
int deletelastitem(int n)
{
if(SIZE==0)
{
cout<<"EMPTY LIST"<<endl;
return -1;
}
else
{
int *p=new int [SIZE+5];
bool flag=false;
int x=-1;
for(int i=0; i<SIZE; i++)
{
if(a[i]==n)
{
x=i;
}
p[i]=a[i];
}
if(x==-1)
{
cout<<"Element not found"<<endl;
return-1;
}
// cout<<x<<endl;
for(int i=x; i<SIZE-1; i++) p[i]=p[i+1];
delete(a);
a=new int [SIZE+5];
for(int i=0; i<SIZE-1; i++) a[i]=p[i];
delete(p);
SIZE--;
if(SIZE==0)
{
cout<<"EMPTY LIST"<<endl;
}
else
{
for(int i=0; i<SIZE; i++) cout<<a[i]<<" ";
cout<<endl;
}
return n;
}
}
void clearList()
{
delete(a);
SIZE=0;
a=new int [10];
cout<<"CLEAR COMPLETED"<<endl;
}
void searchItem(int n)
{
for(int i=0; i<SIZE; i++)
{
if(a[i]==n)
{
cout<<"Found at position "<<i<<endl;
return;
}
}
cout<<"Element not found"<<endl;
}
};
int main()
{
ArrayList arrlist;
while(1)
{
char s[100];
gets(s);
if(s[0]=='T') break;
if(s[0]=='D')
{
int co=0;
for(int i=0; i<strlen(s); i++)
{
if(s[i]==' ') co++;
}
if(co==0)
{
arrlist.deleteitem();
}
else if(s[2]=='L')
{
char c[50];
int x;
for(int i=0; i<strlen(s); i++)
{
if(s[i]==' ') x=i;
}
bool flag=false;
if(s[x+1]=='-')
{
flag=true;
x++;
}
int d=strlen(s)-x;
for(int i=x+1; i<strlen(s); i++) c[i-x-1]=s[i];
c[d]='\0';
int n=StringToNumber(c);
if(flag) n=-n;
arrlist.deletelastitem(n);
}
else
{
char c[50];
int x;
for(int i=0; i<strlen(s); i++)
{
if(s[i]==' ') x=i;
}
bool flag=false;
if(s[x+1]=='-')
{
flag=true;
x++;
}
int d=strlen(s)-x;
for(int i=x+1; i<strlen(s); i++) c[i-x-1]=s[i];
c[d]='\0';
int n=StringToNumber(c);
if(flag) n=-n;
arrlist.deletefirstitem(n);
}
}
if(s[0]=='I')
{
int co=0;
for(int i=0; i<strlen(s); i++)
{
if(s[i]==' ') co++;
}
if(co==2)
{
int n,m;
char c[50];
int y=-1;
for(int i=0; i<strlen(s); i++)
{
if(s[i]==' ')
{
y=i;
}
}
int x=2;
bool flag=false;
if(s[2]=='-')
{
flag=true;
x++;
}
for(int i=x; i<y; i++) c[i-x]=s[i];
c[y-x]='\0';
n=StringToNumber(c);
if(flag) n=-n;
char e[50];
int d=strlen(s)-y;
for(int i=y+1; i<strlen(s); i++) e[i-y-1]=s[i];
e[d]='\0';
m=StringToNumber(e);
arrlist.Insert(n,m);
}
else
{
char c[50];
bool flag=false;
int x=2;
if(s[2]=='-')
{
flag=true;
x++;
}
int d=strlen(s)-x;
for(int i=x; i<strlen(s); i++) c[i-x]=s[i];
c[d]='\0';
int n=StringToNumber(c);
if(flag) n=-n;
arrlist.Insert(n);
}
}
if(s[0]=='C')
{
arrlist.clearList();
}
if(s[0]=='S')
{
char c[50];
bool flag=false;
int x=2;
if(s[2]=='-')
{
flag=true;
x++;
}
int d=strlen(s)-x;
for(int i=x; i<strlen(s); i++) c[i-x]=s[i];
c[d]='\0';
int n=StringToNumber(c);
if(flag) n=-n;
arrlist.searchItem(n);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment