0% found this document useful (0 votes)
105 views6 pages

"Curslist.h" File Cursor Implementaon of List Adt

The document discusses the implementation of a cursor-based linked list data structure in C. It includes function definitions for initializing the cursor, allocating and freeing nodes, inserting and deleting elements, searching for elements, and displaying the list. The main function provides a menu to test the various list operations and outputs an example run showing the list being created, nodes inserted and deleted, and final display of the list.

Uploaded by

lukout4me
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
105 views6 pages

"Curslist.h" File Cursor Implementaon of List Adt

The document discusses the implementation of a cursor-based linked list data structure in C. It includes function definitions for initializing the cursor, allocating and freeing nodes, inserting and deleting elements, searching for elements, and displaying the list. The main function provides a menu to test the various list operations and outputs an example run showing the list being created, nodes inserted and deleted, and final display of the list.

Uploaded by

lukout4me
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 6

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 002 1 -1 -1 203 304 405 506 607 708

809 9 0 -1 Enter ur choice: 2 Where u want to insert? 1 Enter the element to insert: 100 Enter ur choice: 5 003 1 -1 2 2 100 -1 304 405 506 607 708 809 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 003 1 -1 2 2 100 -1 3 200 4 4 300 5 506 607 708 809 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 003 1 -1 2 2 100 4 305 4 300 -1 506 607 708 809 9 0 -1

Enter ur choice: 4 Enter ur choice: 5 004 1 -1 -1 203 305 402 506 607 708 809 9 0 -1 Enter ur choice: 15 ************WRONG ENTRY******** Enter ur choice: 7

You might also like