-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathllist.c
75 lines (64 loc) · 1.13 KB
/
llist.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include<stdio.h>
#include<stdlib.h>
typedef struct llist
{
int data;
struct llist *next;
}llist;
llist *insertfirst(llist *H,int x)
{
llist* temp = (llist*) malloc(sizeof(llist));
temp->data = x;
temp->next = H;
H = temp;
return H;
}
llist *insertlast(llist *H,int x)
{
llist* temp = (llist*) malloc(sizeof(llist));
llist* current=H;
temp->data = x;
temp->next = NULL;
if(H == NULL)
H=temp;
else
{
while (current->next != NULL)
current = current->next;
current->next = temp;
}
return H;
}
llist *search(llist *H,int x)
{
llist* current=H;
while((current != NULL) && (current->data != x))
current = current->next;
return current;
}
void printllist(llist *H)
{
llist* current = H;
printf("\nThe elements are :\n");
while (current!= NULL)
{
printf("%d ",current->data);
current = current->next;
}
}
int main()
{
//int x;
llist *H=NULL,*pos;
H = insertfirst(H,1);
H = insertfirst(H,2);
H = insertlast(H,45);
pos = search(H,1);
printf("%p %d\n",pos,pos->data);
printf("%p %d\n",H,H->data);
H = insertfirst(H,23);
pos = search(H,45);
printf("%p %d",pos,pos->data);
printllist(H);
return 0;
}