+ All Categories
Home > Documents > CIRCULAR L INKED L IST Insert as a first node Insert as a last node Delete first node Delete last...

CIRCULAR L INKED L IST Insert as a first node Insert as a last node Delete first node Delete last...

Date post: 18-Jan-2018
Category:
Upload: wilfred-bradley
View: 234 times
Download: 0 times
Share this document with a friend
Description:
I NSERT AS A LAST NODE void insertl() { struct studinfo *newnode, *ptr; newnode=(struct studinfo *) malloc(sizeof(struct studinfo)); printf("Enter a new record : marks and name "); scanf("%d%s",&newnode->marks,newnode->name); if (start == NULL) { start =newnode; newnode->next = newnode; } else { ptr =start; while (ptr->next != start) ptr= ptr->next; ptr->next = newnode; newnode->next = start; }
18
CIRCULAR LINKED LIST Insert as a first node Insert as a last node Delete first node Delete last node Insert after a node Insert before a node Search Traverse
Transcript
Page 1: CIRCULAR L INKED L IST Insert as a first node Insert as a last node Delete first node Delete last node Insert after a node Insert before a node Search.

CIRCULAR LINKED LIST

•Insert as a first node•Insert as a last node•Delete first node•Delete last node•Insert after a node•Insert before a node•Search•Traverse

Page 2: CIRCULAR L INKED L IST Insert as a first node Insert as a last node Delete first node Delete last node Insert after a node Insert before a node Search.

INSERT AS A FIRST NODEvoid insertf() {

struct studinfo *newnode,*ptr;newnode=(struct studinfo *) malloc(sizeof(struct studinfo));printf("Enter a new record : marks and name ");scanf("%d%s",&newnode->marks,newnode->name);

if(start==NULL){

start = newnode;newnode->next = newnode;

}else { ptr = start; while(ptr->next !=start)

ptr = ptr->next; newnode->next = start; start = newnode; ptr->next =start;

}}

Page 3: CIRCULAR L INKED L IST Insert as a first node Insert as a last node Delete first node Delete last node Insert after a node Insert before a node Search.

INSERT AS A LAST NODEvoid insertl(){

struct studinfo *newnode, *ptr;newnode=(struct studinfo *) malloc(sizeof(struct studinfo));printf("Enter a new record : marks and name ");scanf("%d%s",&newnode->marks,newnode->name);if (start == NULL){

start =newnode;newnode->next = newnode;

}else{

ptr =start;while (ptr->next != start)

ptr= ptr->next;ptr->next = newnode;newnode->next = start;

}}

Page 4: CIRCULAR L INKED L IST Insert as a first node Insert as a last node Delete first node Delete last node Insert after a node Insert before a node Search.

INSERT AFTER A NODE

void inserta() { int cnt=1, no;

struct studinfo *ptr,*prevptr, *newnode; printf("\n enter number ..."); scanf("%d",&no); ptr=start; while (cnt != no) { ptr = ptr->next; cnt++; }newnode=(struct studinfo *) malloc(sizeof(struct studinfo));printf("Enter a new record : marks and name");scanf("%d%s",&newnode->marks,newnode->name);newnode->next = ptr->next;ptr->next = newnode;

}

Page 5: CIRCULAR L INKED L IST Insert as a first node Insert as a last node Delete first node Delete last node Insert after a node Insert before a node Search.

INSERT BEFORE A NODE

void insertb() {

int cnt=1, no;struct studinfo *ptr,*prevptr, *newnode; printf("\n enter number ..."); scanf("%d",&no); ptr=start;if(no==1) {

insertf(); } else {

Page 6: CIRCULAR L INKED L IST Insert as a first node Insert as a last node Delete first node Delete last node Insert after a node Insert before a node Search.

CONTINUE…while(cnt !=no)

{prevptr=ptr;ptr = ptr->next;cnt++; }newnode=(struct studinfo *) malloc(sizeof(struct studinfo));printf("Enter a new record : marks and name " );scanf("%d%s",&newnode->marks,newnode->name);newnode->next=ptr;prevptr->next=newnode; }

}

Page 7: CIRCULAR L INKED L IST Insert as a first node Insert as a last node Delete first node Delete last node Insert after a node Insert before a node Search.

DELETE FIRST NODEvoid deletef() { struct studinfo *ptrs,*ptr; ptrs=start; ptr = start; if (start == NULL)

printf("\n List is empty, element can not be delete");else

{ if (ptr->next == start)

start = NULL; else {

while(ptr->next !=start) ptr = ptr->next;

start=start->next; ptr->next = start;

} free(ptrs); }}

Page 8: CIRCULAR L INKED L IST Insert as a first node Insert as a last node Delete first node Delete last node Insert after a node Insert before a node Search.

DELETE LAST NODE

void deletel() {

struct studinfo *ptr,*prevptr;ptr=start;if (start == NULL)

printf("\n List is empty, element can not be delete");else{if (ptr->next == start)

start = NULL;else{

while(ptr->next!=start) {

prevptr=ptr;ptr=ptr->next;

} prevptr->next =start;

} free(ptr);

}}

Page 9: CIRCULAR L INKED L IST Insert as a first node Insert as a last node Delete first node Delete last node Insert after a node Insert before a node Search.

TRAVERSEvoid traverse(){

struct studinfo *ptr;ptr= start;if (ptr){

while (ptr->next !=start){printf("\nRecord: marks and name %d %s\n",ptr->marks,

ptr->name);ptr = ptr->next;

}if (ptr) printf("\nRecord: marks and name %d %s\n",ptr-

>marks, ptr->name);}else

printf("\nCircular list is empty ");getch();

}

Page 10: CIRCULAR L INKED L IST Insert as a first node Insert as a last node Delete first node Delete last node Insert after a node Insert before a node Search.

DOUBLY LINKED LIST

•Insert as a first node•Insert as a last node•Insert after a node•Delete first node•Delete last node•Traverse

Page 11: CIRCULAR L INKED L IST Insert as a first node Insert as a last node Delete first node Delete last node Insert after a node Insert before a node Search.

CRAETEstruct studinfo{

int marks;struct studinfo *next;struct studinfo *prev;}*start;

Page 12: CIRCULAR L INKED L IST Insert as a first node Insert as a last node Delete first node Delete last node Insert after a node Insert before a node Search.

INSERT AS A FIRST NODEvoid insertf() { struct studinfo *newnode, *ptr;

newnode=(struct studinfo *) malloc(sizeof(struct studinfo));printf("Entera new number : marks ");scanf("%d",&newnode->marks);newnode->next =NULL;newnode->prev=NULL;newnode->next=start;start->prev=newnodestart=newnode;

}

Page 13: CIRCULAR L INKED L IST Insert as a first node Insert as a last node Delete first node Delete last node Insert after a node Insert before a node Search.

INSERT AS A LAST NODEvoid insertl(){

struct studinfo *newnode, *ptr;newnode=(struct studinfo *) malloc(sizeof(struct studinfo));printf("Entera new number : marks ");scanf("%d",&newnode->marks);newnode->next =NULL;newnode->prev=NULL;if (start == NULL)

start =newnode;else{ptr = start;while (ptr->next!=NULL)

ptr = ptr->next;ptr->next = newnode;newnode->prev=ptr;}

}

Page 14: CIRCULAR L INKED L IST Insert as a first node Insert as a last node Delete first node Delete last node Insert after a node Insert before a node Search.

INSERT AFTER A NODEvoid inserta() {

int no,cnt=1;struct studinfo *newnode, *ptr;printf("insert a node number");scanf("%d",&no);ptr=start;while((no!=cnt) &&(ptr!=NULL)) {

ptr=ptr->next;cnt++;

}

Page 15: CIRCULAR L INKED L IST Insert as a first node Insert as a last node Delete first node Delete last node Insert after a node Insert before a node Search.

newnode=(struct studinfo *) malloc(sizeof(struct studinfo));printf("Enter a new number : marks ");scanf("%d",&newnode->marks);

newnode->prev=ptr;newnode->next=ptr->next;ptr->next->prev= newnode;ptr->next = newnode;

}

Page 16: CIRCULAR L INKED L IST Insert as a first node Insert as a last node Delete first node Delete last node Insert after a node Insert before a node Search.

DELETE FIRST NODEvoid deletef() {

struct studinfo *ptr;if(start==NULL){

printf("list is empty");return;

}ptr=start;start=start->next;start->prev=NULL;free(ptr);

}

Page 17: CIRCULAR L INKED L IST Insert as a first node Insert as a last node Delete first node Delete last node Insert after a node Insert before a node Search.

DELETE LAST NODEvoid deletel() {

struct studinfo *ptr,*prevptr;ptr=start;while(ptr->next!=NULL){

prevptr=ptr;ptr=ptr->next;

} prevptr->next=NULL; free(ptr);

}

Page 18: CIRCULAR L INKED L IST Insert as a first node Insert as a last node Delete first node Delete last node Insert after a node Insert before a node Search.

TRAVERSEvoid traverse(){

struct studinfo *ptr;ptr= start;while (ptr!=NULL){printf("\t %d",ptr->marks);ptr = ptr->next;}getch();

}


Recommended