From 12c790fafc2f6745926c2b85c1817bfea5bc370d Mon Sep 17 00:00:00 2001 From: Anusha184 <43715521+Anusha184@users.noreply.github.com> Date: Fri, 30 Oct 2020 22:33:07 +0530 Subject: [PATCH] Linked list program Create,insert,delete,display student details using linked list --- linked list program | 223 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 223 insertions(+) create mode 100644 linked list program diff --git a/linked list program b/linked list program new file mode 100644 index 0000000..5309363 --- /dev/null +++ b/linked list program @@ -0,0 +1,223 @@ +#include +#include +#include +int max=5,count; +struct student +{ + char usn[10]; + char name[20]; + char branch[32]; + char phno[10]; + int sem; + struct student*next; +}; +typedef struct student node; +int countnodes(node*head) +{ + node*p; + count=0; + p=head; + while(p!=NULL) + { + p=p->next; + count++; + } + return count; +} +node*getnode() +{ + node*newnode; + newnode=(node*)malloc(sizeof(node)); + printf("enter usn,name,branch,phno,sem\n"); + scanf("%s",&(newnode->usn)); + scanf("%s",&(newnode->name )); + scanf("%s",&(newnode->branch)); + scanf("%s",&(newnode->phno)); + scanf("%d",&(newnode->sem)); + newnode->next=NULL; + return newnode; +} +node*display(node*head) +{ + node*p; + if(head==NULL) + printf("no list to display\n"); + else + { + p=head; + printf("student database\n"); + printf("USN\t NAME\t BRANCH\t PHNO\t SEM\n"); + while(p!=NULL) + { + printf("%s\t%s\t%s\t%s\t%d\n",p->usn,p->name,p->branch,p->phno,p->sem); + p=p->next; + } + printf("the total no, of nodes in the list is %d",countnodes(head)); + } + return head; +} +node*create(node*head) +{ + node*newnode; + if(head==NULL) + { + newnode=getnode(); + head=newnode; + } + else + { + newnode=getnode(); + newnode->next=head; + head=newnode; + } + return head; +} +node*insertfront(node*head) +{ + if(countnodes(head)==max) + printf("list is full\n"); + else + head=create(head); + return head; +} +node*insertrear(node*head) +{ + node*p,*newnode; + p=head; + if(countnodes(head)==max) + { + printf("list is full\n"); + } + else + { + newnode=getnode(); + while(p->next!=NULL) + { + p=p->next; + } + p->next=newnode; + } + return head; +} +node*insert(node*head) +{ + int ch; + do + { + printf("1.insert front\t 2.insertrear\t 3.exit\n"); + printf("enter your choice\n"); + scanf("%d",&ch); + switch(ch) + { + case 1:head=insertfront(head); + break; + case 2:head=insertrear(head); + break; + case 3:break; + } + head=display(head); + }while(ch!=3); + return head; +} +node*deletefront(node*head) +{ + node*p; + if(head==NULL) + printf("no node to delete\n"); + else + { + p=head; + head=head->next; + free(p); + printf("front node is deleted\n"); + } + return head; +} +node*deleterear(node*head) +{ + node*p,*q; + p=head; + while((p->next)->next!=NULL) + { + p=p->next; + } + q=p->next; + free(q); + p->next=NULL; + printf("last node is deleted\n"); + return head; +} +node*idelete(node*head) +{ + int ch; + do + { + printf("1.deletefront\t 2. deleterear\t 3. exit\n"); + printf("enter your choice\n"); + scanf("%d",&ch); + switch(ch) + { + case 1:head=deletefront(head); + break; + case 2:head=deleterear(head); + break; + case 3:break; + } + head=display(head); + }while(ch!=3); + return head; +} +node*stack(node*head) +{ + int ch; + do + { + printf("1.insert front\t 2. delete front\t 3. exit\n"); + printf("enter your choice\n"); + scanf("%d",&ch); + switch(ch) + { + case 1:head=insertfront(head); + break; + case 2:head=deleterear(head); + break; + case 3:break; + } + head=display(head); + }while(ch!=3); + return head; +} +main() +{ + node*head; + head==NULL; + int ch,i,n; + while(1) + { + printf("1.create\t 2.insert\t 3.delete\t 4.stack\t 5.display\t 6.exit\n"); + printf("enter your choice:\n"); + scanf("%d",&ch); + switch(ch) + { + case 1:printf("enter no. of students\n"); + scanf("%d",&n); + for(i=0;i