void dellast(list_t l) { link cur; link prev; int i; if (l->head->next == l->head) { /* the last entry */ printf("%d\n", l->head->entry); return; } cur = l->head; for (i = 0; i < 4; i++) { prev = cur; cur = cur->next; } prev->next = cur->next; l->head = cur->next; printf("\t%d\n", cur->entry); dellink(&cur); if (cur == l->tail) { l->tail = prev; } dellast(l); }
int main() { int ch, val,pos; printf("\nEnter to the world of Link List:"); getch(); while(1) { system("cls"); printf("\n0 >Eixt\n1 >AddFirst \n2 >Insert \n3 >AddLast \n4 >DeleteFirst \n5 >DeleteNode \n6 >DeleteLast\n7 >Display \n9 >Print Reversly \n10 >Freelist \n"); scanf("%d", &ch); switch(ch) { case 0: exit(0); case 1: printf("\nEnter the number : "); scanf("%d", &val); addfirst(val); break; case 2: printf("\nEnter the number and position :"); scanf("%d%d", &val,&pos); insert(val,pos); break; case 3: printf("\nEnter the number : "); scanf("%d", &val); addlast(val); break; case 4: delfirst(); break; case 5: printf("\nEnter the position :"); scanf("%d",&pos); deletenode(pos); break; case 6: dellast(); break; case 7: display(); break; case 9: printrev(head); break; case 10: freelist(); break; default : printf("\nEnter the correct choice "); } getch(); } return 0; }
int main(void) { int i; list_t l; l = list_init(); for (i = 1; i <= 9; i++) { list_push_back(l, i); } list_print(l); dellast(l); /*list_finalize(&l);*/ return 0; }
void main() { NODE *s1,*s2; int ch; s1=NULL; s2=NULL; while(1) { clrscr(); printf("Enter choice:\n"); printf(" 1.Append element at end\n 2.Concatinate two lists\n"); printf(" 3.Free all nodes in a list\n 4.Reverse a list\n"); printf(" 5.Delete last element\n 6.Delete nth element\n"); printf(" 7.Combine two ordered list into single ordered list\n"); printf(" 8.Find union of two lists\n 9.Find intersection of two lists\n"); printf("10.Insert after nth element\n11.Delete every second element\n"); printf("12.Place elements in order\n13.Return sum of data\n"); printf("14.Return number of elements\n15.Make second copy of list\n"); printf("16.Move node forward to n positions\n17.Exit\n"); scanf("%d",&ch); clrscr(); if(ch>0&&ch<=16) s1=create(s1); disp(s1); switch(ch) { case 1:s1=append(s1);break; case 2:s2=create(s2);disp(s2);s1=concat(s1,s2);break; case 3:s1=fr(s1); printf("List freed\n"); disp(s1); break; case 4:s1=rev(s1);break; case 5:s1=dellast(s1);break; case 6:s1=deln(s1);break; case 7:s2=create(s2);disp(s2);s1=comb(s1,s2);break; case 8:s2=create(s2);disp(s2);s1=uni(s1,s2);break; case 9:s2=create(s2);disp(s2);s1=inter(s1,s2);break; case 10:s1=insertn(s1);break; case 11:s1=del2(s1);break; case 12:s1=sort(s1);break; case 13:printf("Sum of elements=%d",sum(s1));break; case 14:printf("Number of elements=%d",elements(s1));break; case 15: s2=copy(s1); printf("Second list:\n"); disp(s2); break; case 16:s1=forward(s1);break; case 17:exit(0);break; default:printf("Wrong choice.Enter again");break; } if(ch!=3&&ch!=13&&ch!=14&&ch!=15&&ch>0&&ch<=16) { printf("\nResult:"); disp(s1); } s1=fr(s1); s2=fr(s2); getch(); } }