Nov
28
2008
28
2008
C++ Program to implement a single linked list
C++ Program to implement a single linked list and Perform the following operations.
/************************************************************** Author: Arun Vishnu M V Web: www.arunmvishnu.com Description: C++ Program to implement a single linked list and Perform the following operations 1: Insertioin 2: Deletion 3: Display ***************************************************************/ #include<conio.h> #include<iostream.h> #include<process.h> // Creating a NODE Structure struct node { int data; // data struct node *next,*start; // link to next node and previous node }; // Creating a class LIST class list { struct node *start; public: void create(); // to create a list void insert(); // insertion void del(); // deletion void show(); // show }; // Creating a new node void list::create() { struct node *nxt_node,*pre_node; int value,no,i; start=nxt_node=pre_node=NULL; cout<<"\nCREATING A NEW LIST.........\n\nHow many nodes : "; cin>>no; for(i=1;i<=no;i++) { cout<<"Enter "<<no<<" DATAs: "; cin>>value; nxt_node=new node; if(pre_node!=NULL) pre_node->next=nxt_node; if(start==NULL) start=nxt_node; nxt_node->data=value; nxt_node->next=NULL; pre_node=nxt_node; } cout<<"\nThe list is created!"; show(); } // Displaying LIST void list::show() { int data; struct node *ptr=start; cout<<"\n\nThe List is \n"; while(ptr!=NULL) { data=ptr->data; cout<<data<<" -> "; ptr=ptr->next; } cout<<"\b\b\b "; getch(); } // Insert node at any position void list::insert() { int position,dat; struct node *ptr_b,*ptr_f,*ptr,*nxt_node,*pre_node; cout<<"\nInsertion of a new node \n"; cout<<"Enter the DATA after which the new node is to be inserted.\n"; cout<<"[ If the data is not found the new node will be"; cout<<" created at first ]\n\t->: "; cin>>position; cout<<"Enter the data to insert: "; cin>>dat; ptr_b=start; ptr=new node; ptr->data=dat; if(start!=NULL) { while(ptr_b->next!=NULL && ptr_b->data!=position) { ptr_b=ptr_b->next; } } else { clrscr(); start=nxt_node=pre_node=NULL; nxt_node=new node; if(pre_node!=NULL) pre_node->next=nxt_node; if(start==NULL) start=nxt_node; nxt_node->data=dat; nxt_node->next=NULL; pre_node=nxt_node; return; } if(ptr_b->next==NULL && ptr_b->data!=position) //Insertion at first { ptr->next=start; start=ptr; } else if(ptr_b->next==NULL && ptr_b->data==position) //insertion at the end of list { ptr_b->next=ptr; ptr->next=NULL; } else //Insertion between two nodes { ptr_f=ptr_b->next; ptr->next=ptr_b->next; ptr_b->next=ptr; } cout<<"\nNew node is inserted!!"; getch(); } //End of insertion //Delete node from any position void list::del() { int position,dat; struct node *ptr_b,*ptr_f,*ptr,*pntr; cout<<"Enter the data to be beleted: "; cin>>position; ptr=start; while(ptr->next!=NULL && ptr->data!=position) { pntr=ptr; ptr=ptr->next; } if(ptr->next==NULL && ptr->data!=position) //Data not found { cout<<"\nData not found!!"; getch(); return; } else if(ptr->next==NULL && ptr->data==position) //Deletion from the end of list { ptr_b=pntr; if(pntr->next)// Only one node start=NULL; dat=ptr->data; ptr_b->next=NULL; } else //Deletion between two nodes or first node { dat=ptr->data; if(start==ptr) // delete first node { start=ptr->next; ptr_f=start; } else // Deletion between two nodes { dat=ptr->data; ptr_b=pntr; ptr_b->next=ptr->next; //ptr_f=ptr_b->next; } } delete ptr; cout<<"\nThe node is deleted!!\nData= "<<dat; getch(); } //End of deletion // Main function int main() { clrscr(); list l; l.create(); // to create a new node int choice; while(1) { cout<<"\n-------------------------------------------"; cout<<"\n\t\t LINKED LIST\n\n"; cout<<"1:Insertion\n2:Deletion\n3:Display List\n4:Exit"; cout<<"\nEnter your choice(1-4): "; cin>>choice; switch(choice) { case 1: // Insertion l.insert(); break; case 2: // Deletion l.del(); break; case 3: // Display l.show(); break; case 4: // Exit exit(0); break; default: cout<<"Please enter correct choice(1-4)!!"; getch(); break; } } return 0; } //---------------------- END--------------------
Related Posts
Latest Posts
- Introducing Google Drive
- Google Account Activity gives you a monthly summary of your account activity across many Google products
- Apple released iOS 5.1
- You won’t be actually able to take 41MP photos using Nokia 808 PureView
- Apple Releases Mac OS X Mountain Lion 10.8 Developer Preview
- A walk down memory lane
- What is the real meaning of Facebook “Like”?
- Wish you and your family a very Happy and Prosperous New Year 2012!
- Import Orkut’s albums to Google+
- Download 100 Paid Android Apps(Like Fruit Ninja HD, BW, Smart Office etc. )For Free
Tags
apple
c and cpp
Cheats
download
downloads
Entertainment
Film
friendship
Fun
gadgets
Games
gmail
google
greetings
india
Internet
ipad
iphone
java script
linux
love
mac
microsoft
mobile
News
office
Orkut
Personal
photos
Programming
review
Security
software
source code
technology
Tips & Tricks
video
videos
virus
web
web development
windows
windows 7
worm
yahoo
Recent Comments
- Vikesh Kumar on C++ Program for QUICK SORT
- pratikchavan on C++ Program for QUICK SORT
- suraj on C++ Program Program for Binary Search.
- saravanan on Enabling REGEDIT and Task Manager
- VP on I Got My GirlFriend

An article by
sir,
am doin my BE CSE..i did not understand the programs…plz explain line by line in detail…plz sir plz sir plz sir..i’ll be very grateful to u..