-
Notifications
You must be signed in to change notification settings - Fork 30
/
singly linked list del.cpp
74 lines (70 loc) · 1.38 KB
/
singly linked list del.cpp
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
#include <stdio.h>
#include<stdlib.h>
struct Node{
int data;
struct Node *Next;
}*first=NULL;
void create(int A[],int n){
int i;
struct Node *t,*last;
first=(struct Node*)malloc(sizeof(struct Node));
first->data=A[0];
first->Next=NULL;
last=first;
for(i=1;i<n;i++){
t=(struct Node*)malloc(sizeof(struct Node));
t->data=A[i];
t->Next=NULL;
last->Next=t;
last=t;
}
}
void Display(struct Node *p){
while(p){
printf("%d ",p->data);
p=p->Next;
}
}
int deleteNumber(struct Node *p,int index,int n){
struct Node *q;
int x=-1;
if(index<1 || index>n)
return -1;
if(index==1){
q=first;
x=first->data;
first=first->Next;
free(q);
return x;
}
else{
for(int i=0;i<index-1;i++){
q=p;
p=p->Next;
}
q->Next=p->Next;
x=p->data;
free(p);
return x;
}
}
int main()
{
int n;
printf("enter the length of the list\n");
scanf("%d",&n);
int A[10];
printf("Enter the elements\n");
for(int i=0;i<n;i++){
scanf("%d",&A[i]);
}
create(A,n);
Display(first);
printf("\n");
int index;
printf("Enter the index where you want to be delete\n");
scanf("%d",&index);
deleteNumber(first,index,n);
Display(first);
return 0;
}