implementation linked list using arrays

#include<iostream>
using namespace std;

class list{
private:
int * arr;
int size;
int current;
int capacity;
public:
list(){
arr=new int[5];
size=0;
current=0;
capacity=5;
}

void start(){
current=0;
}
void tail(){
current=size;
}
void next(){
if(current==size){
cout<<"\n Can't Next Because Current is At End\n";
}
else{
current++;
}
}
void back(){
if(current==0){
cout<<"\n Can't Back Because Current is At Start\n";
}
else{
current--;
}
}
int  get(){
return arr[current];
}
void update(int x){
arr[current]=x;
}
int length(){
return size;
}
void print(){
cout<<"\nData Of List Is:\n";
cout<<"\nCurrent:"<<current<<"\tsize:"<<size<<"\t\tcapacity:"<<capacity<<endl;
for(int i=0;i<size;i++){
cout<<""<<arr[i]<<",";
}
cout<<"\n----------------------------------------------------------------\n";
}
void add_new(int data){
if(size==capacity){
int * b=new int [2*capacity];
for(int i=0;i<size;i++){
b[i]=arr[i];
}
delete [] arr;
arr=new int[2*capacity];
for(int i=0;i<size;i++){
arr[i]=b[i];
}
delete [] b;
capacity=capacity*2;
}
else{
arr[size]=data;
size++;}
}
void delete_one(){
arr[size]=0;
size--;
}




~list(){
delete [] arr;
cout<<"\n~~~~MEMORY DEALLOCATED SUCCESSFULLY~~~~~~\n";
}

};
int  main(){
list l;
l.print();
for(int i=0;i<45;i++){
l.add_new(i);
l.print();
}


return 0;
}

Comments

Popular Posts