p7 by maam (p6)

/*
7 . Write a Program to Implement a Single Link List using following Operation:
1. Insert 2. Insend 3. Insord 4. Delete 5. Dispaly 6. Search 7. Exit
*/
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
#include <dos.h>
#include <process.h>
struct node
{
int no;
struct node *next;
} *head, *p, *temp, *q;
void newlist();
void display();
void inbefore();
void inafter();
void inmid();
void delfirst();
void dellast();
void delmid();
void ascending();
void descending();
void search();
void invalid();
void tanya();
void main()
{
int ch;
clrscr();
while (ch != 6)
{
again:
display();
printf("\n1.Create New List\n2.Insert\n3.Delete Node\n4.Sorting\n5.Search\n6.exit\n");
printf("\nEnter Your Choice : ");
scanf("%d", &ch);
if (ch > 6 || ch < 0)
{
invalid();
goto again;
}
switch (ch)
{
case 1:
newlist();
break;
case 2:
int a = 0;
clrscr();
while (a != 4)
{
again2:
display();
printf("\n0.Display\n1.Insert Before Node\n2.Insert After Node\n3.Insert Some Where else\n4.Back\n");
printf("\nEnter Your Choice : ");
scanf("%d", &a);
if (a > 4 || a < 0)
{
invalid();
goto again2;
}
switch (a)
{
case 0:
tanya();
break;
case 1:
inbefore();
break;
case 2:
inafter();
break;
case 3:
inmid();
break;
case 4:
goto end;
}
}
end:
clrscr();
break;
case 3:
int b = 0;
clrscr();
while (b != 4)
{
again3:
display();
printf("\n1.Delete First Node\n2.Delete Last Node\n3.Delete Other Node\n4.Back\n");
printf("\nEnter Your Choice : ");
scanf("%d", &b);
if (b > 4 || b < 0)
{
invalid();
goto again3;
}
switch (b)
{
case 1:
delfirst();
break;
case 2:
dellast();
break;
case 3:
delmid();
break;
case 4:
goto end2;
}
}
end2:
clrscr();
break;
case 4:
int c = 0;
clrscr();
while (c != 3)
{
again4:
display();
printf("\n1.Ascending Order\n2.Descending Order\n3.Back\n");
printf("\nEnter Yoyr Choice : ");
scanf("%d", &c);
if (c > 3 || c < 0)
{
invalid();
goto again3;
}
switch (c)
{
case 1:
ascending();
break;
case 2:
descending();
break;
case 3:
goto end3;
}
}
end3:
clrscr();
break;
case 5:
clrscr();
search();
break;
case 6:
exit(0);
}
}
getch();
}
void newlist()
{
int sel;
int i, n, l;
clrscr();
head = (struct node *)malloc(sizeof(struct node *));
printf("\nEnter Value For Head : ");
scanf("%d", &n);
head->no = n;
head->next = 0;
p = head;
while (sel != 1)
{
i = 1;
printf("\nPress 1 for exit or 2 for continue : ");
scanf("%d", &sel);
if (sel == 1)
{
break;
}
else
{
temp = (struct node *)malloc(sizeof(struct node));
printf("\nEnter Number [%d] : ", i + 1);
scanf("%d", &n);
temp->no = n;
temp->next = 0;
p->next = temp;
p = p->next;
i++;
}
}
clrscr();
}
void display()
{
p = head;
printf("\n\t\t\t\tCreated List");
printf("\n\t\t\t\t------------");
printf("\n");
if (p == 0)
{
printf("\n\t* --> List Not Created\n");
goto e;
}
while (p != 0)
{
printf(" %d -> ", p->no);
p = p->next;
}
printf("end Of list");
printf("\n");
e:
}
void inbefore()
{
int no;
temp = (struct node *)malloc(sizeof(struct node *));
printf("\nEnter Value : ");
scanf("%d", &no);
temp->no = no;
temp->next = head;
head = temp;
clrscr();
}
void inafter()
{
int no;
p = head;
temp = (struct node *)malloc(sizeof(struct node *));
printf("\nEnter Value : ");
scanf("%d", &no);
clrscr();
temp->no = no;
temp->next = 0;
while (p->next != 0)
{
p = p->next;
}
p->next = temp;
clrscr();
}
void inmid()
{
int no, x, f = 0;
printf("\nEnter The Location Where You Want To put Your New Number : ");
scanf("%d", &x);
p = head;
temp = (struct node *)malloc(sizeof(struct node *));
printf("\nEnter New Number : ");
scanf("%d", &no);
clrscr();
temp->no = no;
while (p != 0)
{
if (x == p->no)
{
f = 1;
break;
}
p = p->next;
}
if (f == 1)
{
temp->next = p->next;
p->next = temp;
}
clrscr();
}
void delfirst()
{
clrscr();
p = head->next;
free(head);
head = p;
clrscr();
}
void dellast()
{
clrscr();
p = head;
q = p->next;
while (q->next != 0)
{
p = p->next;
q = q->next;
}
p->next = 0;
free(q);
clrscr();
}
void delmid()
{
int x2, f2 = 0;
clrscr();
p = head;
q = p->next;
printf("\nEnter The No Which You Want To Delete : ");
scanf("%d", &x2);
clrscr();
while (q != 0)
{
if (x2 == q->no)
{
f2 = 1;
break;
}
p = p->next;
q = q->next;
}
if (f2 == 1)
{
p->next = q->next;
}
clrscr();
}
void search()
{
int f3 = 0, find_no;
printf("\n\nWhich No You Want To Search : ");
scanf("%d", &find_no);
p = head;
while (p != 0)
{
if (p->no == find_no)
{
f3 = 1;
break;
}
p = p->next;
}
if (f3 == 1)
{
tanya();
printf("\nYup.. The Number Is In the List");
getch();
clrscr();
}
else
{
tanya();
printf("\nNup.. The Number Is Not the List");
getch();
clrscr();
}
clrscr();
}
void ascending()
{
int z;
p = head;
for (p = head; p != 0; p = p->next)
{
for (q = p->next; q != NULL; q = q->next)
{
if (p->no > q->no)
{
z = p->no;
p->no = q->no;
q->no = z;
}
}
}
tanya();
printf("\nData are Sorted In Ascending Order");
getch();
clrscr();
}
void descending()
{
int z;
p = head;
for (p = head; p != 0; p = p->next)
{
for (q = p->next; q != NULL; q = q->next)
{
if (p->no < q->no)
{
z = p->no;
p->no = q->no;
q->no = z;
}
}
}
tanya();
printf("\nData are Sorted In Descending Order");
getch();
clrscr();
}
void invalid()
{
printf("Invalid Choice");
delay(5000);
clrscr();
}
void tanya()
{
clrscr();
sound(1000);
printf("Please Wait..");
delay(1000);
nosound();
clrscr();
}
/*
OUTPUT
Created List
------------
* --> List Not Created
1.Create New List
2.Insert
3.Delete Node
4.Sorting
5.Search
6.exit
Enter Your Choice :1
Enter Value For Head : 59
Press 1 for exit or 2 for continue : 2
Enter Number [2] : 32
Press 1 for exit or 2 for continue : 2
Enter Number [2] : 64
Press 1 for exit or 2 for continue : 2
Enter Number [2] : 99
Press 1 for exit or 2 for continue : 2
Enter Number [2] : 47
Press 1 for exit or 2 for continue : 2
Enter Number [2] : 21
Press 1 for exit or 2 for continue : 1
Created List
------------
59 -> 32 -> 64 -> 99 -> 47 -> 21 -> end Of list
1.Create New List
2.Insert
3.Delete Node
4.Sorting
5.Search
6.exit
Enter Your Choice :2
Created List
------------
59 -> 32 -> 64 -> 99 -> 47 -> 21 -> end Of list
0.Display
1.Insert Before Node
2.Insert After Node
3.Insert Some Where else
4.Back
Enter Your Choice :0
59 -> 32 -> 64 -> 99 -> 47 -> 21 -> end Of list
0.Display
1.Insert Before Node
2.Insert After Node
3.Insert Some Where else
4.Back
Enter Your Choice :1
Enter Value : 99
Created List
------------
99 -> 59 -> 32 -> 64 -> 99 -> 47 -> 21 -> end Of list
0.Display
1.Insert Before Node
2.Insert After Node
3.Insert Some Where else
4.Back
Enter Your Choice :2
Created List
------------
99 -> 59 -> 32 -> 64 -> 99 -> 47 -> 21 -> end Of list
0.Display
1.Insert Before Node
2.Insert After Node
3.Insert Some Where else
4.Back
Enter Your Choice : 2
Enter Value : 45
Created List
------------
99 -> 59 -> 32 -> 64 -> 99 -> 47 -> 21 -> 45 -> end Of list
0.Display
1.Insert Before Node
2.Insert After Node
3.Insert Some Where else
4.Back
Enter Your Choice :3
Created List
------------
99 -> 59 -> 32 -> 64 -> 99 -> 47 -> 21 -> 45 -> end Of list
0.Display
1.Insert Before Node
2.Insert After Node
3.Insert Some Where else
4.Back
Enter Your Choice : 3
Enter The Location Where You Want To put Your New Number : 32
Enter New Number : 11
Created List
------------
99 -> 59 -> 32 -> 11 -> 64 -> 99 -> 47 -> 21 -> 45 -> end Of list
0.Display
1.Insert Before Node
2.Insert After Node
3.Insert Some Where else
4.Back
Enter Your Choice : 4
Created List
------------
99 -> 59 -> 32 -> 11 -> 64 -> 99 -> 47 -> 21 -> 45 -> end Of list
1.Create New List
2.Insert
3.Delete Node
4.Sorting
5.Search
6.exit
Enter Your Choice :3
Created List
------------
99 -> 59 -> 32 -> 11 -> 64 -> 99 -> 47 -> 21 -> 45 -> end Of list
1.Delete First Node
2.Delete Last Node
3.Delete Other Node
4.Back
Enter Your Choice :1
Created List
------------
59 -> 32 -> 11 -> 64 -> 99 -> 47 -> 21 -> 45 -> end Of list
1.Delete First Node
2.Delete Last Node
3.Delete Other Node
4.Back
Enter Your Choice :2
59 -> 32 -> 11 -> 64 -> 99 -> 47 -> 21 -> end Of list
1.Delete First Node
2.Delete Last Node
3.Delete Other Node
4.Back
Enter Your Choice :3
enter which node you want to deleate : 11
Created List
------------
59 -> 32 -> 64 -> 99 -> 47 -> 21 -> end Of list
1.Delete First Node
2.Delete Last Node
3.Delete Other Node
4.Back
Enter Your Choice :4
Created List
------------
59 -> 32 -> 64 -> 99 -> 47 -> 21 -> end Of list
1.Create New List
2.Insert
3.Delete Node
4.Sorting
5.Search
6.exit
Enter Your Choice :4
Created List
------------
59 -> 32 -> 64 -> 99 -> 47 -> 21 -> end Of list
1.Ascending Order
2.Descending Order
3.Back
Enter Your Choice :1
Created List
------------
21 -> 32 -> 47 -> 59 -> 64 -> 99 -> end Of list
1.Ascending Order
2.Descending Order
3.Back
Enter Your Choice :2
Created List
------------
99 -> 64 -> 59 -> 47 -> 32 -> 21 -> end Of list
1.Ascending Order
2.Descending Order
3.Back
Enter Your Choice :3
Created List
------------
99 -> 64 -> 59 -> 47 -> 32 -> 21 -> end Of list
1.Create New List
2.Insert
3.Delete Node
4.Sorting
5.Search
6.exit
Enter Your Choice :5
Which No You Want To Search : 47
Yup.. The Number Is In the List
99 -> 64 -> 59 -> 47 -> 32 -> 21 -> end Of list
1.Create New List
2.Insert
3.Delete Node
4.Sorting
5.Search
6.exit
Enter Your Choice :5
Which No You Want To Search : 55
*/

Post a Comment

0 Comments