Perform the Implementation of Single Link List
Source Code for Single Link list in C and C++ Language with the following functions ::
- Create Single Link list
- Display Single Link list
- Insert Node
- Delete node
- Reverse Single Link list
- Revert
Single link list Assignment is implemented using pointers with every function is divided modular to increase codes readability .
Single Link List C Language code
1 |
#include<br/>#include<br/><br/>typedef struct node<br/><br/>{<br/><br/>int info;<br/><br/>struct node *lnk;<br/><br/>}node;<br/><br/>node* create();<br/><br/>node* alloc();<br/><br/>void display(node *);<br/><br/>node* insert(node *,int);<br/><br/>node* insert1(node *,int);<br/><br/>node* dlt(node *,int);<br/><br/>node* reverse(node *);<br/><br/>void main()<br/><br/>{<br/><br/>int ch,n,a[10],key,ch1;<br/><br/>node *f,*f1,*f2;<br/><br/>do<br/><br/>{<br/><br/>clrscr();<br/><br/>printf("\t\t\tLINKED LIST MAIN MENU\n");<br/><br/>printf("\t\t\t1:CREATE\n");<br/><br/>printf("\t\t\t2:DISPLAY\n");<br/><br/>printf("\t\t\t3:INSERT\n");<br/><br/>printf("\t\t\t4:DELETE\n");<br/><br/>printf("\t\t\t5:REVERSE\n");<br/><br/>printf("\t\t\t6:REVERT\n");<br/><br/>printf("\t\t\t7:EXIT\n");<br/><br/>printf("\t\tENTER YOUR CHOICE\n");<br/><br/>scanf("%d",&ch);<br/><br/>switch(ch)<br/><br/>{<br/><br/>case 1:clrscr();<br/><br/>f=create();<br/><br/>getch();<br/><br/>break;<br/><br/>case 2:clrscr();<br/><br/>printf("\n\t\tDISPLAYING THE LINKED LIST\n\n");<br/><br/>display(f);<br/><br/>getch();<br/><br/>break;<br/><br/>case 3:clrscr();<br/><br/>do<br/><br/>{<br/><br/>clrscr();<br/><br/>printf("\n\t\tINSERT MENU");<br/><br/>printf("\n\t\t1.BEFORE A NO\n\t\t2.AFTER A NO\n\t\t3.EXIT");<br/><br/>scanf("%d",&ch1);<br/><br/>switch(ch1)<br/><br/>{<br/><br/>case 1: clrscr();<br/><br/>printf("ENTER THE ELEMENT OF THE LIST");<br/><br/>scanf("%d",&key);<br/><br/>f=insert(f,key);<br/><br/>display(f);<br/><br/>getch();<br/><br/>break;<br/><br/>case 2: clrscr();<br/><br/>printf("ENTER THE ELEMENT OF THE LIST");<br/><br/>scanf("%d",&key);<br/><br/>f1=insert1(f,key);<br/><br/>display(f1);<br/><br/>getch();<br/><br/>break;<br/><br/>case 3:<br/><br/>break;<br/><br/>}<br/><br/>}while(ch1!=3);<br/><br/>break;<br/><br/>case 4: clrscr();<br/><br/>printf("ENTER THE ELEMENT OF THE LIST");<br/><br/>scanf("%d",&key);<br/><br/>f1=dlt(f,key);<br/><br/>display(f1);<br/><br/>getch();<br/><br/>break;<br/><br/>case 5: f2=reverse(f);<br/><br/>display(f2);<br/><br/>f2=reverse(f2);<br/><br/>getch();<br/><br/>break;<br/><br/>case 6: f=reverse(f);<br/><br/>display(f);<br/><br/>printf("\n\t\tLIST REVERSED\t\t");<br/><br/>getch();<br/><br/>break;<br/><br/>case 7:<br/><br/>break;<br/><br/>default:<br/><br/>printf("WRONG CHOICE !!!! RE ENTER");<br/><br/>getch();<br/><br/>break;<br/><br/>}<br/><br/>}while(ch!=7);<br/><br/>}<br/><br/>node* create()<br/><br/>{<br/><br/>node *f,*nw,*lst;<br/><br/>f=NULL;<br/><br/>do<br/><br/>{<br/><br/>nw=alloc();<br/><br/>if(f==NULL)<br/><br/>f=nw;<br/><br/>else<br/><br/>lst->lnk=nw;<br/><br/>lst=nw;<br/><br/>printf("\n\n\tDO YOU WANT TO ENTER ANOTHER DATABASE(y/n)?");<br/><br/>}while(getche()=='y');<br/><br/>return f;<br/><br/>}<br/><br/>node* alloc()<br/><br/>{<br/><br/>node *f;<br/><br/>f=(node *)malloc(sizeof(node));<br/><br/>f->lnk=NULL;<br/><br/>printf("\n\tENTER THE ELEMENT TO BE ADDED");<br/><br/>scanf("%d",&f->info);<br/><br/>return f;<br/><br/>}<br/><br/>void display(node *f)<br/><br/>{<br/><br/>if(f==NULL)<br/><br/>{<br/><br/>printf("\n\n\t\tLIST NOT PRESENT !!!!");<br/><br/>return;<br/><br/>}<br/><br/>printf("\n\tINFO\tRPTR\tADD\n");<br/><br/>while(f!=NULL)<br/><br/>{<br/><br/>printf("\t%d\t%d\t%d\n",f->info,f->lnk,f);<br/><br/>f=f->lnk;<br/><br/>}<br/><br/>}<br/><br/>node* insert(node *f,int key)<br/><br/>{<br/><br/>node *nw,*t;<br/><br/>if(f->info==key)<br/><br/>{<br/><br/>nw=alloc();<br/><br/>nw->lnk=f;<br/><br/>f=nw;<br/><br/>return f;<br/><br/>}<br/><br/>while(f->lnk!=NULL)<br/><br/>{<br/><br/>if(f->lnk->info==key)<br/><br/>{<br/><br/>nw=alloc();<br/><br/>nw->lnk=f->lnk;<br/><br/>f->lnk=nw;<br/><br/>return f;<br/><br/>}<br/><br/>f=f->lnk;<br/><br/>}<br/><br/>printf("\n\t\t\tELEMENT NOT FOUND !!!!");<br/><br/>return f;<br/><br/>}<br/><br/>node* insert1(node *f,int key)<br/><br/>{<br/><br/>node *nw,*p;<br/><br/>f=p;<br/><br/>while(p!=NULL)<br/><br/>{<br/><br/>if(key==p->info)<br/><br/>{<br/><br/>nw=alloc();<br/><br/>nw->lnk=p->lnk;<br/><br/>p->lnk=nw;<br/><br/>return f;<br/><br/>}<br/><br/>p=p->lnk;<br/><br/>}<br/><br/>printf("element not found");<br/><br/>}<br/><br/>node* dlt(node *f,int key)<br/><br/>{<br/><br/>node *p,*q;<br/><br/>p=f;<br/><br/>if(f==NULL)<br/><br/>{<br/><br/>printf("\n\tLINKED LIST EMPTY");<br/><br/>return f;<br/><br/>}<br/><br/>if(key==f->info)<br/><br/>{<br/><br/>f=f->lnk;<br/><br/>free(p);<br/><br/>return f;<br/><br/>}<br/><br/>else<br/><br/>{<br/><br/>while(p->lnk!=NULL)<br/><br/>{<br/><br/>if(key==(p->lnk)->info)<br/><br/>{<br/><br/>q=p->lnk;<br/><br/>p->lnk=p->lnk->lnk;<br/><br/>free(q);<br/><br/>}<br/><br/>p=p->lnk;<br/><br/>}<br/><br/>return f;<br/><br/>}<br/><br/>printf("ELEMENT NOT FOUND");<br/><br/>}<br/><br/>node* reverse(node *f)<br/><br/>{<br/><br/>node *p,*t,*r;<br/><br/>p=NULL;<br/><br/>t=f;<br/><br/>r=t->lnk;<br/><br/>while(t!=NULL)<br/><br/>{<br/><br/>t->lnk=p;<br/><br/>p=t;<br/><br/>t=r;<br/><br/>if(t!=NULL)<br/><br/>r=r->lnk;<br/><br/>}<br/><br/>return(p);<br/><br/>} |
Single Link List code Download
Source projectgeek.com