-
Notifications
You must be signed in to change notification settings - Fork 8
/
linked-list-insert.cpp
executable file
·116 lines (106 loc) · 2.44 KB
/
linked-list-insert.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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#include<iostream>
using namespace std;
/*
Structure of the linked list node is as*/
struct node
{
int data;
struct node *next;
};
void deleteNodegreater(node *head){
//
}
// function inserts the data in front of the list
void insertAtBegining(struct node** headRef, int newData)
{
// Code here
// if(*headRef == NULL){
// (*headRef)->data = newData;
// (*headRef)->next = NULL;
}else{
node *newnode = new node();
newnode->data = newData;
newnode->next = (*headRef);
(*headRef) = newnode;
}
}
// function appends the data at the end of the list
void insertAtEnd(struct node** headRef, int newData)
{
// Code here
node *newnode = new node();
newnode->data = newData;
newnode->next = NULL;
if(*headRef ==NULL){
*headRef = newnode;
return;
}
node* curr = *headRef;
while(curr->next!=NULL){
curr = curr->next;
}
curr->next = newnode;
return;
}
node* deleteNode(node *head,int x)
{
//Your code here
if(head!=NULL){
if(x==0){
node *temp = head;
head = head->next;
delete temp;
return head;
}else{
node *temp = head;
for(int i=0;i<x-1;i++){
head = head->next;
}
node *todelete = head->next;
head->next = todelete->next;
delete todelete;
return temp;
}
}
}
bool search(node *head,int x){
if(head==NULL) return false;
if(head->data == x) return true;
search(head->next,x);
}
int main(){
int t,n,k,num;
cin>>t;
while(t--){
cin>>n;
node *head = NULL;
for(int i=0;i<n;i++){
// cin>>num>>k;
// if(k==0) insertAtBegining(&head,num);
// else insertAtEnd(&head,num);
cin>>num;
insertAtEnd(&head,num);
}
//delete node
/*
cout<<"enter pos to delete:: \n";
int pos;
cin>>pos;
head = deleteNode(head,pos);
*/
//search for nodevalue
int val;
cout<<"enter value to be searched:: \n";
cin>>val;
bool res = search(head,val);
if(res == true)cout<<"value found\n";
else cout<<"value not found\n";
while(head!=NULL){
cout<<head->data<<" ";
head = head->next;
}
cout<<endl;
delete head;
}
return 0;
}