Anda di halaman 1dari 4

#include<stdio.

h>
#include<stdlib.h>

typedef struct arrayadt


{
int cap;
int lastindex;
int *ptr;
}adt;

adt* createarray(int cap)


{
adt *arr=(adt*)malloc(sizeof(adt));
arr->cap=cap;
arr->lastindex=-1;
arr->ptr=(int*)malloc(sizeof(int)*cap);
return arr;
}

void setitem(adt *arr,int index,int value)


{
int i;
if(arr->lastindex==arr->cap-1)
{
printf("cannot be added\n");
return;
}
else if(index<0||index>arr->cap-1)
{
printf("invalid index\n");
return;
}
else
{
if(index<=arr->lastindex)
{
arr->lastindex=arr->lastindex+1;
i=arr->lastindex;
while(i!=index)
{
arr->ptr[i]=arr->ptr[i-1];
}
arr->ptr[i]=value;
return;
}
if(index==arr->lastindex+1)
{
arr->lastindex=arr->lastindex+1;
arr->ptr[arr->lastindex]=value;
return;
}
}
}

int getitem(adt *arr,int index)


{
if(index<0||index>arr->lastindex)
{
printf("invalid index\n");
}
return arr->ptr[index];
}

void edititem(adt *arr,int index,int value)


{
if(index<0||index>arr->lastindex)
{
printf("invalid index\n");
}
else
{
arr->ptr[index]=value;
}
}

int count(adt *arr)


{
return arr->lastindex+1;
}

void removeitem(adt *arr,int index)


{
int i=index;
if(index<0||index>arr->lastindex)
{
printf("invalid index\n");
return;
}
else if(i!=arr->lastindex)
{
while(i!=arr->lastindex)
{
arr->ptr[i]=arr->ptr[i+1];
i++;
}
arr->lastindex--;
return;
}
if(index==arr->lastindex)
{
arr->lastindex--;
return;
}
}

int searchitem(adt *arr,int item)


{
int i=0;
while(arr->ptr[i]<=arr->lastindex)
{
if(arr->ptr[i]==item)
{
return i;

}
i++;
}
return -1;
}

void sort(adt *arr)


{
int i,j,k,r,t;
for(i=1;i<arr->lastindex+1;i++)
{
for(j=0;j<arr->lastindex+1-i;j++)
{
if(arr->ptr[j]>arr->ptr[j+1])
{
t=arr->ptr[j];
arr->ptr[j]=arr->ptr[j+1];
arr->ptr[j+1]=t;
}
}
}
}

void print(adt *arr)


{
int i=0;
while(i<=arr->lastindex)
{
printf("%d ",arr->ptr[i]);
i++;
}
}

int main()
{
int n,i,p,choice;
printf("enter the size of array ");
scanf("%d",&n);
adt *arr=createarray(n);
printf("enter the numbers in the array\n");
for(i=0;i<n;i++)
{
scanf("%d",&p);
setitem(arr,i,p);
}
while(1)
{

printf("1 picking any item\n");


printf("2 Edit the item\n");
printf("3 Remove any item\n");
printf("4 Search any item\n");
printf("5 To sort items\n");
printf("6 For printing the items\n");
printf("7 Exit\n");

scanf("%d",&choice);

switch(choice)
{
case 1:
{
printf("enter the index no of which you want number\n");
int r;
scanf("%d",&r);
int q=getitem(arr,r);
printf("picked item is %d\n",q);
break;
}
case 2:
{
int m,n;
printf("enter the index and item you want to replace \n");
scanf("%d%d",&m,&n);
edititem(arr,m,n);
break;
}
case 3:
{
printf("enter the index of item you want to remove \n");
int z;
scanf("%d",&z);
removeitem(arr,z);
break;
}
case 4:
{
printf("enter the item you want to search \n");
int d;
scanf("%d",&d);
int e=searchitem(arr,d);
if(e==-1)
{
printf("no is not present in the list %d\n",i);
}
else
{
printf("no is present at location %d\n",e);
}
break;
}
case 5:
{
printf("sorted list is \n");
sort(arr);
}
case 6:
{
print(arr);
}
case 7:
exit(0);
}
}
return 0;
}

Anda mungkin juga menyukai