Вы находитесь на странице: 1из 4

#include<iostream.h> #include<conio.h> #include<malloc.

h> typedef struct link { int info; struct link *next; }node; node *start=NULL; class cirlink { public: void create(); void traverse(); void inserts(); void inserta(); void insertl(); void deletes(); void deletea(); void deletel(); }; void cirlink :: create() { int i,m,ele; node *n, *l; cout<<"Enter no. of elements : "; cin>>m; for(i=1;i<=m;i++) { n=(node*)malloc(sizeof(node)); cout<<"Enter info : "; cin>>ele; n->info=ele; if(start==NULL) start=n; else l->next=n; l=n; n->next=start; } } void cirlink :: traverse() { node *p; p=start; while(p->next!=start) { cout<<p->info; p=p->next; } cout<<p->info; } void cirlink :: inserts() { node *l,*n; int ele; l=start; cout<<"Enter the element : "; cin>>ele; n=(node*)malloc(sizeof(node));

n->next=NULL; while(l->next!=start) { l=l->next; } l->next=n; n->next=start; start=n; } void cirlink :: insertl() { node *n,*l; int ele; cout<<"Enter the element : "; cin>>ele; n=(node*)malloc(sizeof(node)); n->next=NULL; n->info=ele; l=start; while(l->next!=start) { l=l->next; } l->next=n; n->next=start; } void cirlink :: inserta() { int ele,l,j; node *n,*p,*q; cout<<"Enter element : "; cin>>ele; n=(node*)malloc(sizeof(node)); cout<<"Enter position where you want to insert : "; cin>>l; n->info=ele; if(l==1) { n->next=start; start=n; } else { j=1; p=start; while(j<l-1) { j++; p=p->next; } q=p->next; p->next=n; n->next=q; } } void cirlink :: deletes() { int ele; node *l;

ele=start->info; cout<<"Element deleted is : "<<ele; l=start; while(l->next!=start) { l=l->next; } l->next=start->next; start=start->next; } void cirlink :: deletel() { int ele; node *p,*q; p=q=start; while(p->next!=start) { q=p; p=p->next; } ele=p->info; q->next=start; cout<<"Element deleted is :"<<ele; } void cirlink :: deletea() { int ele,l,j; node *p,*q,*r; p=q=start; cout<<"Enter location : "; cin>>l; j=1; while(j<l) { q=p; p=p->next; j++; } cout<<"Deleted Element is : "<<p->info; q->next=p->next; } void main() { cirlink l; l.create(); char ch; int i; do { cout<<"Enter 1 for traverse : "<<endl; cout<<"Enter 2 for insertion at start : "<<endl; cout<<"Enter 3 for insertion at any position : "<<endl; cout<<"Enter 4 for insertion at last : "<<endl; cout<<"Enter 5 for deletion at start : "<<endl; cout<<"Enter 6 for deletion at any position : "<<endl; cout<<"Enter 7 for deletion at last : "; cin>>i; switch(i) { case 1:

l.traverse(); break; case 2: l.inserts(); break; case 3: l.inserta(); break; case 4: l.insertl(); break; case 5: l.deletes(); break; case 6: l.deletea(); break; case 7: l.deletel(); break; default: cout<<"Invalid argument"<<endl; } cout<<"\nPress y for continue : "; cin>>ch; } while(ch=='y'); }

Вам также может понравиться