Sunteți pe pagina 1din 8

//www.csemcq.

com

//Linked list implementation

using namespace std;

#include<iostream>

#include<conio.h>

struct linked_list

int data;

struct linked_list *next;

}*start;

typedef struct linked_list node;

//int count=0,*posa=NULL;

void add(void);

void disp(void);

void search(int);

void insert(int);

void del(int);

int main()

int ch=1,e,p,c,op=1;

do

cout<<"\n\n\n============Linked List Operation===================\n\n\n";

cout<<"\nPress 1 for Create Linked List\n";

cout<<"\nPress 2 for searching from list\n";

cout<<"\nPress 3 to insert a new node\n";

cout<<"\nPress 4 to delete a node\n";

cout<<"\nPress 5 for Traverse\n";


cout<<"\nPress 0 for exit\n";

cin>>c;

switch(c)

case 1:

while(ch==1)

add();

cout<<"\n do you want to enter more char";

cin>>ch;

break;

case 2:

cout<<"\n enter eleemnt u want to search";

cin>>e;

search(e);

break;

case 3:

cout<<"\n enter postion after which you want to insert";

cin>>p;

insert(p);

break;

case 4:

cout<<"\n enter postion of node you want to delete";

cin>>p;

del(p);
break;

case 5:

disp();

break;

default:

cout<<"\n========no operation=============\n");

getch();

cout<<"\n\nWant to proceed press 1");

cin>>op;

}while(op==1);

getch();

void add(void)

int n,pos;

node *ptr,*ptr1,*node1;

node1=(node*)malloc(sizeof(node));

if(node1==NULL)

cout<<"\n\n No free space left!\n Close some running applications and try again.");
else

cout<<"\n\nEnter element: ");

scanf("%d",&node1->data);

node1->next = NULL;

//fflush(stdin);

if(start==NULL)

start=node1;

//[ist node]

// cout<<"\n\n ist node element: ");

//pos=1;

//count++;

else

ptr=start;

//cout<<"\n\n 2nd node insert: ");

while(ptr!=NULL)

ptr1=ptr;

ptr=ptr->next;

ptr1->next=node1;

}
}

disp();

void disp()

node *ptr;

ptr=start;

cout<<"\nelements of list are:\n");

while(ptr!=NULL)

cout<<"\t%d",ptr->data);

ptr=ptr->next;

void search(int k)

node *ptr;

int count=1;

ptr=start;

cout<<"\nelements of list are:\n");

while(ptr!=NULL)

{
if(k==ptr->data)

cout<<"\telement %d found at position%d",ptr->data,count);

//cout<<"\telement %d \t found at adress%u",ptr->data,ptr);

getch();

break;

count++;

ptr=ptr->next;

void insert(int pos)

node *ptr,*ptr1,*node1;

ptr=start;

int i;

for(i=1;i<=pos;i++)

ptr1=ptr;

ptr=ptr->next;

node1=(node*)malloc(sizeof(node));

if(node1==NULL)

cout<<"\n\n No free space left!\n Close some running applications and try again.");
else

cout<<"\nEnter element to insert : ");

scanf("%d",&node1->data);

node1->next = NULL;

ptr1->next=node1;

node1->next=ptr;

disp();

void del(int pos)

node *ptr,*ptr1,*node1;

ptr=start;

int i;

for(i=1;i<=pos;i++)

ptr1=ptr;

ptr=ptr->next;

//node1=(node*)malloc(sizeof(node));

if(start==NULL)

cout<<"\n\n List is emplty Underflow\n");

else

{
cout<<"\nelement with data %d is deleted : \n",ptr->data);

ptr1->next=ptr->next;

disp();

S-ar putea să vă placă și