Cursor Implementation Of List Adt Data Structure Lab program

Cursor Implementation of List Adt first create curslist.h header file with create structure node create the function Initialize cursor, CursorAlloc() ,CursorFree(POSITION P),Insert(int X,POSITION P),IsLast(POSITION P),POSITION Find(int X,LIST L),POSITION FindPrevious(int X,LIST L),void Delete(int X,LIST L),void MakeEmpty(LIST L) after create the header file include these header file into the main function of the program curlist.c . Data structure Lab Source code Programming algorithm - CS1152 c/c++
“curslist.h” file Cursor Implementaon of list adt
#include<stdio.h>
#include<conio.h>
#define SPACE_SIZE 10
struct Node
{
int data;
int Next;
};
typedef int PtrToNode;
typedef PtrToNode POSITION;
typedef PtrToNode LIST;
struct Node cursor[SPACE_SIZE];
void InitializeCursor()
{
int i;
for(i=0;i<=SPACE_SIZE-1;i++)
{
cursor[i].Next=i+1;
cursor[i].data=0;
}
cursor[SPACE_SIZE-1].Next=-1;
}
POSITION CursorAlloc()
{
POSITION P;
P=cursor[0].Next;
cursor[0].Next=cursor[P].Next;
cursor[P].data=-1;
cursor[P].Next=-1;
return P;
}
void CursorFree(POSITION P)
{
cursor[P].Next=cursor[0].Next;
cursor[0].Next=P;
cursor[P].data=0;
}
void Insert(int X,POSITION P)
{
POSITION Temp;
Temp=CursorAlloc();
if(Temp==-1)
printf("\nOut of space");
else if(cursor[P].data==0)
printf("\nPosition is not in the list");
else
{

cursor[Temp].data=X;
cursor[Temp].Next=cursor[P].Next;
cursor[P].Next=Temp;
}
}
int IsLast(POSITION P)
{
return cursor[P].Next==-1;
}
int IsEmpty(LIST L)
{
return cursor[L].Next==-1;
}
POSITION Find(int X,LIST L)
{
POSITION Temp;
Temp=cursor[L].Next;
while(Temp!=-1&&cursor[Temp].data!=X)
Temp=cursor[Temp].Next;
return Temp;
}
POSITION FindPrevious(int X,LIST L)
{
POSITION Temp;
Temp=L;
while(Temp!=-1&&cursor[cursor[Temp].Next].data!=X)
Temp=cursor[Temp].Next;
return Temp;
}
void Delete(int X,LIST L)
{
POSITION P,Temp;
P=FindPrevious(X,L);
if(!IsLast(P))
{
Temp=cursor[P].Next;
cursor[P].Next=cursor[Temp].Next;
CursorFree(Temp);
}
}
void MakeEmpty(LIST L)
{
while(!IsEmpty(L))
Delete(cursor[cursor[L].Next].data,L);
}
void Display()
{
int i;
for(i=0;i<=SPACE_SIZE-1;i++)
printf("\n%d\t%d\t%d",i,cursor[i].data,cursor[i].Next);
}
“curslist.c” file Cursor Implementaon of list adt
#include<stdio.h>
#include<conio.h>
#include"curslist.h"
void main()
{
LIST L=-1;
POSITION P;
int choice,place,x;
clrscr();
printf("\n1.Create\n2.Insert\n3.Delete\n4.MakeEmpty\n5.Display\n6.Find\n7.Exit");
A:
printf("\nEnter ur choice:\t");
scanf("%d",&choice);
switch(choice)
{
case 1:
if(L==-1)
{
InitializeCursor();
L=CursorAlloc();
}
else
printf("\nList is already created");
break;
case 2:
if(L==-1)
printf("\nList is not yet initialized");
else
{
printf("\nWhere u want to insert?");
scanf("%d",&place);
printf("\nEnter the element to insert");
scanf("%d",&x);
Insert(x,place);
}
break;
case 3:
if(L==-1)
printf("\nList is not yet initialized");
else
{
printf("\nWhich element you want to delete?");
scanf("%d",&x);
Delete(x,L);
}
break;
case 4:
if(L==-1)
printf("\nList is not yet initialized");
else
MakeEmpty(L);
break;
case 5:
if(L==-1)
printf("\nList is not yet initialized");
else
Display();
break;
case 6:
if(L==-1)
printf("\nList is not yet initialized");
else
{
printf("\nWhich element you want to search?");
scanf("%d",&x);
P=Find(x,L);
printf("\nThe element is at %d",P);
}
break;
case 7:
exit(0);
default:
printf("\n *******WRONG ENTRY*******");
}
goto A;
}
OUTPUT: Cursor Implementaon of list adt
1.Create
2.Insert
3.Delete
4.MakeEmpty
5.Display
6.Find
7.Exit
Enter ur choice: 1

Enter ur choice: 5
0 0 2
1 -1 -1
2 0 3
3 0 4
4 0 5
5 0 6
6 0 7
7 0 8
8 0 9
9 0 -1
Enter ur choice: 2
Where u want to insert? 1
Enter the element to insert: 100
Enter ur choice: 5
0 0 3
1 -1 2
2 100 -1
3 0 4
4 0 5
5 0 6
6 0 7
7 0 8
8 0 9
9 0 -1
Enter ur choice: 2
Where u want to insert? 2
Enter the element to insert: 200
Enter ur choice: 2
Where u want to insert? 3
Enter the element to insert: 300
Enter ur choice: 5
0 0 3
1 -1 2
2 100 -1
3 200 4
4 300 5
5 0 6
6 0 7
7 0 8
8 0 9
9 0 -1
Enter ur choice: 6
Which element you want to search? 200
The element is at 3
Enter ur choice: 3
Which element you want to delete: 200
Enter ur choice: 5
0 0 3
1 -1 2
2 100 4
3 0 5
4 300 -1
5 0 6
6 0 7
7 0 8
8 0 9
9 0 -1
Enter ur choice: 4
Enter ur choice: 5
0 0 4
1 -1 -1
2 0 3
3 0 5
4 0 2
5 0 6
6 0 7
7 0 8
8 0 9
9 0 -1
Enter ur choice: 15
************WRONG ENTRY********
Enter ur choice: 7
Data structure Lab Source code Programming algorithm - CS1152 c/c++

Related post