Hello friends!!!!!
Array ADT
#include<stdio.h>
#include<stdlib.h>
typedef struct ARRAYADT
{
int *data;
int size;
int length;
} ArrayADT;
void initialisation(ArrayADT *arr, int size)
{
arr->data = (int )malloc(sizeof(int)size);
arr->size = size;
arr->length = 0;
}
void insertion(ArrayADT *arr, int element)
{
if(arr->length >= arr->size)
{
printf("\n Error: Array is FULL. Can not insert element.\n");
}
else
{
arr->data[arr->length] = element;
arr->length = arr->length + 1;
}
}
void deletion(ArrayADT *arr, int index)
{
int i;
if(index < 0 || index >= arr->length)
{
printf("\n Invalid index. Cannot delete element.\n");
}
else
{
for(i=index; i<arr->length-1; i++)
{
arr->data[i] = arr->data[i+1];
}
arr->length--;
}
}
void searching(ArrayADT *arr, int element)
{
int i,count = 0;
for(i=0; i<arr->length; i++)
{
if(arr->data[i] == element)
{
count++;
}
}
if(count >= 1)
{
printf("Target element is present\n");
}
else
{
printf("Target element is not present\n");
}
}
void display(ArrayADT *arr)
{
int i;
if(arr->length == 0)
{
printf("Array is empty.\n");
}
else
{
printf("Array elements : \n");
for(i=0; i<arr->length; i++)
{
printf("%d ",arr->data[i]);
}
}
printf("\n");
}
void main()
{
ArrayADT arr;
int n=6,i,x;
initialisation(&arr,10);
for(i=0;i<n;i++)
{
printf("\n Enter %dth element: ",i);
scanf("%d",&x);
insertion(&arr, x);
}
display(&arr);
printf("\n Enter an elemnt index to delete:");
scanf("%d",&i);
deletion(&arr,i);
printf("\n Array elements after deletion:\n");
display(&arr);
searching(&arr,5);
}