Wipro Elite NLTH Coding Programming Questions
Wipro Elite NLTH Coding Programming Questions
1. #include <stdio.h>
2.
3. int main()
4. {
5. int m, n, c, d, first[1 0][10], second[10][10], sum[
10][10];
6.
7. printf("Enter the number of rows and columns of matrix\n");
8. scanf("%d%d", & m, &n);
9. printf("Enter the elements of first matrix\n");
10.
11. for (c = 0; c < m; c++)
12. for (d = 0; d < n; d++)
13. scanf("%d", &first[c][d]);
14.
15. printf("Enter the elements of second matrix\n");
16.
17. for (c = 0; c < m; c++)
18. for (d = 0 ; d < n; d++)
19. scanf("%d", &second[ c][d]);
20.
21. printf("Sum of entered matrices:-\n");
22.
23. for (c = 0; c < m; c++) {
24. for (d = 0 ; d < n; d++) {
25. sum[c][d] = first[c][d] + second[c][d];
26. printf("%d\t", sum[c][d]);
27. }
28. printf("\n");
29. }
30.
31. return 0;
32. }
Wipro Elite NLTH Coding / Programming Questions
Output:
#include <stdio.h>
int main()
{
int marks[10], i, n, sum = 0, average;
printf("Enter n: ");
scanf("%d", &n);
for(i=0; i<n; ++i)
{
printf("Enter number%d: ",i+1);
scanf("%d", &marks[i]);
sum += marks[i];
}
average = sum/n;
return 0;
}
Wipro Elite NLTH Coding / Programming Questions
Output:
Enter n: 5
Enter number1: 45
Enter number2: 35
Enter number3: 38
Enter number4: 31
Enter number5: 49
Average = 39
1. #include <stdio.h>
2. #include <stdlib.h>
3.
4. struct node {
5. int data;
6. struct node *next;
7. };
8.
9. struct node *start = NULL;
10. void insert_at_begin(int) ;
11. void insert_at_end(int);
12. void traverse();
13. void delete_from_begin();
14. void delete_from_end();
15. int count = 0;
16.
17. int main () {
18. int input, data;
19.
20. for (;;) {
21. printf("1. Insert an element at beginning of linked list.\n");
22. printf("2. Insert an element at end of linked list.\n");
23. printf("3. Traverse linked list.\n");
24. printf("4. Delete element from beginning.\n");
Wipro Elite NLTH Coding / Programming Questions
25. printf("5. Delete element from end.\n");
26. printf("6. Exit\n");
27.
28. scanf("%d", &input);
29.
30. if (input == 1 ) {
31. printf("Enter value of element\n");
32. scanf("%d", &data);
33. insert_at_begin(d ata);
34. }
35. else if (input == 2) {
36. printf("Enter value of element\n");
37. scanf("%d", &data);
38. insert_at_end(data);
39. }
40. else if (input == 3)
41. traverse();
42. else if (input == 4)
43. delete_from_begin();
44. else if (input == 5)
45. delete_from_end();
46. else if (input == 6)
47. break;
48. else
49. printf("Please enter valid input.\n");
50. }
51.
52. return 0;
53. }
54.
55. void insert_at_begin(int x) {
56. struct node *t;
57.
58. t = (struct node*)malloc(sizeof(struct node));
59. count++;
60.
Wipro Elite NLTH Coding / Programming Questions
61. if (start == NULL) {
62. start = t;
63. start->data =
x;
64. start->next = NULL;
65. return;
66. }
67.
68. t->data = x;
69. t->next = start;
70. start = t;
71. }
72.
73. void insert_at_end(int x) {
74. struct node *t, *temp;
75.
76. t = (struct node*)malloc(sizeof(struct node));
77. count++;
78.
79. if (start == NULL) {
80. start = t;
81. start->data =
x;
82. start->next = NULL;
83. return;
84. }
85.
86. temp = start;
87.
88. while (temp->next != NULL)
89. temp = temp->next;
90.
91. temp->next = t;
92. t->data = x;
93. t->next = NULL;
94. }
95.
96. void traverse() {
Wipro Elite NLTH Coding / Programming Questions
97. struct node *t;
98.
99. t = start;
100.
101. if (t == NULL) {
102. printf("Linked list is empty.\n");
103. return;
104. }
105.
106. printf("There are %d elements in linked list.\n", count) ;
107.
108. while (t->next != NULL) {
109. printf("%d\n" , t- >data);
110. t = t->next;
111. }
112. printf("%d\n", t->data);
113. }
114.
115. void delete_from_begin() {
116. struct node *t;
117. int n;
118.
119. if (start == NULL) {
120. printf("Linked list is already empty.\n");
121. return;
122. }
123.
124. n = start->d ata;
125. t = start->next;
126. free(start);
127. start = t;
128. count--;
129.
130. printf("%d deleted from beginning successfully.\n", n);
131. }
132.
Wipro Elite NLTH Coding / Programming Questions
133. void delete_from_end() {
134. struct node *t, *u;
135. int n;
136.
137. if (start == NULL) {
138. printf("Linked list is already empty.\n");
139. return;
140. }
141.
142. count--;
143.
144. if (start->next == NULL) {
145. n = start- >data;
146. free(start) ;
147. start = NULL;
148. printf("%d deleted from end successfully.\n", n);
149. return;
150. }
151.
152. t = start;
153.
154. while (t->next != NULL) {
155. u = t;
156. t = t->next;
157. }
158.
159. n = t->data;
160. u->next = NULL;
161. free(t);
162.
163. printf("%d deleted from end successfully.\n", n) ;
164. }
struct node
{
int data;
struct node *next;
};
int i;
*headRef = head;
}
temp->next = temp->next->n
ext;
}
int main() {
/* Initialize nodes */
struct node *head;
struct node *one = NULL;
struct node *two = NULL;
struct node *three = NULL;
insertAtFront(&head, 4);
display(head); // 4 --->1 --->2 --->3 --->
deleteFromFront(&head);
display(head); // 1 --->2 --->3 --->
insertAtEnd(head, 5);
display(head); // 1 --->2 --->3 --->5 --->
deleteFromEnd(head);
display(head); // 1 --->2 --->3 --->
deleteFromMiddle(head, position);
display(head); // 1 --->2 --->3 --->
}
Output:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
struct node {
int data;
int key;
bool isEmpty() {
return head == NULL;
}
int length() {
int length = 0;
return length;
}
//create a link
struct node *link = (struct node*) malloc(sizeof(struct node));
link->key = key;
link->data = data;
if (isEmpty()) {
head = link;
head->next = head;
} else {
//point it to old first node
link->next = head;
printf(" ]");
}
void main() {
insertFirst(1,10);
insertFirst(2,20);
insertFirst(3,30);
insertFirst(4,1);
insertFirst(5,40);
insertFirst(6,56);
//print list
printList();
while(!isEmpty()) {
struct node *temp = deleteFirst();
printf("\nDeleted value:");
printf("(%d,%d) ",temp->key,temp->data);
}
Output:
Wipro Elite NLTH Coding / Programming Questions
Original List:
[ (6,56) (5,40) (4,1) (3,30) (2,20) ]
Deleted value:(6,56)
Deleted value:(5,40)
Deleted value:(4,1)
Deleted value:(3,30)
Deleted value:(2,20)
Deleted value:(1,10)
List after deleting all items:
[ ]
6. #include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
struct node {
int data;
int key;
int length() {
int length = 0;
struct node *current;
return length;
}
printf(" ]");
}
//print data
printf("(%d,%d) ",ptr->k
ey,ptr->data);
}
}
Wipro Elite NLTH Coding / Programming Questions
//insert link at the first location
void insertFirst(int key, int data) {
//create a link
struct node *link = (struct node*) malloc(sizeof(struct node));
link->key = key;
link->data = data;
if(isEmpty()) {
//make it the last link
last = link;
} else {
//update first prev link
head->prev = link;
}
//create a link
struct node *link = (struct node*) malloc(sizeof(struct node));
link->key = key;
link->data = data;
if(isEmpty()) {
//make it the last link
last = link;
} else {
//make link a new last link
last->next = link;
return current;
}
Wipro Elite NLTH Coding / Programming Questions
bool insertAfter(int key, int newKey, int data) {
//start from the first link
struct node *current = head;
//create a link
struct node *newLink = (struct node*) malloc(sizeof(struct node));
newLink->key = newKey;
newLink->data = data;
void main() {
insertFirst(1,10);
insertFirst(2,20);
Wipro Elite NLTH Coding / Programming Questions
insertFirst(3,30);
insertFirst(4,1);
insertFirst(5,40);
insertFirst(6,56);
printf("\n");
printf("\nList (Last to first): ");
displayBackward();
Output:
#include <stdio.h>
int main(){
int i,j,k,n,a[10][10],indeg[10],flag[10],count=0;
for(i=0;i<n;i++){
indeg[i]=0;
flag[i]=0;
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
indeg[i]=indeg[i]+a[j][i];
while(count<n){
for(k=0;k<n;k++){
if((indeg[k]==0) && (flag[k]==0)){
printf("%d ",(k+1));
flag [k]=1;
}
Wipro Elite NLTH Coding / Programming Questions
for(i=0;i<n;i++){
if(a[i][k]==1)
indeg[k]--;
}
}
count++;
}
return 0;
}
Output:
Enter row 1
0110
Enter row 2
0001
Enter row 3
Wipro Elite NLTH Coding / Programming Questions
0001
Enter row 4
0000
#include <stdio.h>
#include <string.h>
int main(void)
{
//variable
char str[100], tmp;
int i, len, mid;
//input
printf("Enter a string: ");
gets(str);
//reverse
for (i = 0; i < mid; i++) {
tmp = str[len - 1 - i];
str[len - 1 - i] = str[i];
str[i] = tmp;
Wipro Elite NLTH Coding / Programming Questions
}
//output
printf("Reversed string: %s\n", str);
printf("End of code\n");
return 0;
}
Output:
i) Stack:
#include <stdio.h>
int MAXSIZE = 8;
int stack[8];
int isempty() {
if(top == -1)
return 1;
Wipro Elite NLTH Coding / Programming Questions
else
return 0;
int isfull() {
if(top == MAXSIZE)
return 1;
else
return 0;
int peek() {
return stack[top];
int pop() {
int data;
if(!isempty()) {
data = stack[top];
top = top - 1;
Wipro Elite NLTH Coding / Programming Questions
return data;
} else
if(!isfull()) {
top = top + 1;
stack[top] = data;
} else {
int main() {
push(3);
Wipro Elite NLTH Coding / Programming Questions
push(5);
push(9);
push(1);
push(12);
push(15);
printf("Elements: \n");
while(!isempty()) {
printf("%d\n",data);
return 0;
Output:
Wipro Elite NLTH Coding / Programming Questions
Element at top of the stack: 15
Elements:
15
12
ii) Queue
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
#define MAX 6
Wipro Elite NLTH Coding / Programming Questions
int intArray[MAX];
int front = 0;
int itemCount = 0;
int peek() {
return intArray[front];
bool isEmpty() {
return itemCount == 0;
bool isFull() {
}
Wipro Elite NLTH Coding / Programming Questions
int size() {
return itemCount;
if(!isFull()) {
if(rear == MAX-1) {
rear = -1;
intArray[++rear] = data;
itemCount++;
}
Wipro Elite NLTH Coding / Programming Questions
int removeData() {
if(front == MAX) {
front = 0;
itemCount--;
return data;
int main() {
/* insert 5 items */
insert(3);
insert(5);
insert(9);
Wipro Elite NLTH Coding / Programming Questions
insert(1);
insert(12);
// front : 0
// rear : 4
// ------------------
// index : 0 1 2 3 4
// ------------------
// queue : 3 5 9 1 12
insert(15);
// front : 0
// rear : 5
// ---------------------
// index : 0 1 2 3 4 5
// ---------------------
// queue : 3 5 9 1 12 15
Wipro Elite NLTH Coding / Programming Questions
if(isFull()) {
printf("Queue is full!\n");
// front : 1
// rear : 5
// -------------------
// index : 1 2 3 4 5
// -------------------
// queue : 5 9 1 12 15
// front : 1
// rear : -1
// ----------------------
// index : 0 1 2 3 4 5
// ----------------------
// queue : 16 5 9 1 12 15
insert(17);
insert(18);
// ----------------------
// index : 0 1 2 3 4 5
// ----------------------
// queue : 16 5 9 1 12 15
Wipro Elite NLTH Coding / Programming Questions
printf("Element at front: %d\n",peek());
printf("----------------------\n");
printf("index : 5 4 3 2 1 0\n");
printf("----------------------\n");
printf("Queue: ");
while(!isEmpty()) {
int n = removeData();
printf("%d ",n);
Output:
Queue is full!
Element removed: 3
Element at front: 5
----------------------
Wipro Elite NLTH Coding / Programming Questions
index : 5 4 3 2 1 0
----------------------
Queue: 5 9 1 12 15 16
i) Sorting
/*
*/
#include <stdio.h>
void main()
int i, j, a, n, number[30];
scanf("%d", &number[i]);
{
Wipro Elite NLTH Coding / Programming Questions
a = number[i];
number[i] = number[j];
number[j] = a;
printf("%d\n", number[i]);
Output:
6
Wipro Elite NLTH Coding / Programming Questions
Enter the numbers
78
90
456
780
200
78
90
200
456
780
Wipro Elite NLTH Coding / Programming Questions
ii) Searching
1. #include <stdio.h>
2.
3. int main()
4. {
6.
8. scanf("%d", &n);
9.
11.
14.
17.
19. {
21. {
23. break;
24. }
Wipro Elite NLTH Coding / Programming Questions
25. }
28.
30.}
Output:
#include<stdio.h>
int i, w;
int K[n+1][W+1];
if (i==0 || w==0)
K[i][w] = 0;
else
K[i][w] = K[i-1][w];
Wipro Elite NLTH Coding / Programming Questions
}
return K[n][W];
int main()
scanf("%d", &n);
scanf("%d", &W);
Wipro Elite NLTH Coding / Programming Questions
printf("%d", knapSack(W, wt, val, n));
return 0;
Output:
100 20
50 10
150 30
250
#include <stdio.h>
int main () {
scanf("%d", &num_denominations);
scanf("%d", &coin_list[i]);
// use_these[i] = 0;
scanf("%d", &owed);
printf("\nSolution: \n");
Output:
Wipro Elite NLTH Coding / Programming Questions
13. String Matching Program In C Language
#include<stdio.h>
#include<conio.h>
int i;
for(i=0;x[i]!='\0';i++)
{}
return i;
void main()
char s[20],p[20];
Wipro Elite NLTH Coding / Programming Questions
int i,l,count=0;
clrscr();
scanf("%s",s);
scanf("%s",p );
l=length(p);
for(i=0;s[i]!='\0';i++)
if(s[i]==p[count] )
count++;
else
{
Wipro Elite NLTH Coding / Programming Questions
count=0;
if ( count == l )
break;
}if(count!=l)
printf("not found");
getch();
Output:
Wipro Elite NLTH Coding / Programming Questions
14. Divide & Conquer Program In C language
#include <stdio.h>
#define max 10
int a[11] = { 10, 14, 19, 26, 27, 31, 33, 35, 42, 44, 0 };
int b[10];
for(l1 = low, l2 = mid + 1, i = low; l1 <= mid && l2 <= high; i++) {
b[i] = a[l1++];
else
Wipro Elite NLTH Coding / Programming Questions
b[i] = a[l2++];
b[i++] = a[l1++];
b[i++] = a[l2++];
a[i] = b[i];
int mid;
Wipro Elite NLTH Coding / Programming Questions
sort(low, mid);
sort(mid+1, high);
} else {
return;
int main() {
int i;
sort(0, max);
Output:
10 14 19 26 27 31 33 35 42 44 0
0 10 14 19 26 27 31 33 35 42 44
Wipro Elite NLTH Coding / Programming Questions
15. Disjoint sets Program In C Language
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Edge
};
struct Graph
{
Wipro Elite NLTH Coding / Programming Questions
// V-> Number of vertices, E-> Number of edges
int V, E;
};
graph->V = V;
graph->E = E;
Wipro Elite NLTH Coding / Programming Questions
graph->edge =
return graph;
if (parent[i] == -1)
return i;
if(xset!=yset){
parent[xset] = yset;
// cycle or not
if (x == y)
return 1;
Wipro Elite NLTH Coding / Programming Questions
Union(parent, x, y);
return 0;
int main()
| \
| \
1-----2 */
int V = 3, E = 3;
graph->edge[0].src = 0;
graph->edge[0].dest = 1;
graph->edge[1].src = 1;
graph->edge[1].dest = 2;
graph->edge[2].src = 0;
graph->edge[2].dest = 2;
if (isCycle(graph))
return 0;
Output:
#include <bits/stdc++.h>
struct Point
int x, y;
};
Wipro Elite NLTH Coding / Programming Questions
// 1 --> Clockwise
// 2 --> Counterclockwise
}
Wipro Elite NLTH Coding / Programming Questions
// Prints convex hull of a set of n points.
if (n < 3) return;
// Initialize Result
vector<Point> hull;
int l = 0;
l = i;
Wipro Elite NLTH Coding / Programming Questions
// Start from leftmost point, keep moving counterclockwise
// until reach the start point again. This loop runs O(h)
int p = l, q;
do
hull.push_back(points[p]);
q = (p+1)%n;
Wipro Elite NLTH Coding / Programming Questions
for (int i = 0; i < n; i++)
// update q
q = i;
// result 'hull'
p = q;
int main()
Point points[] = {{0, 3}, {2, 2}, {1, 1}, {2, 1},
int n = sizeof(points)/sizeof(points[0]);
convexHull(points, n);
return 0;
Output:
Wipro Elite NLTH Coding / Programming Questions
The output is points of the convex hull.
(0, 3)
(0, 0)
(3, 0)
(3, 3)
// reachable from s.
#include<iostream>
#include <list>
// lists
list<int> *adj;
public:
Graph::Graph(int V)
this->V = V;
void Graph::BFS(int s)
{
Wipro Elite NLTH Coding / Programming Questions
// Mark all the vertices as not visited
visited[i] = false;
list<int> queue;
visited[s] = true;
queue.push_back(s);
// vertices of a vertex
list<int>::iterator i;
Wipro Elite NLTH Coding / Programming Questions
while(!queue.empty())
s = queue.front();
queue.pop_front();
if (!visited[*i])
{
Wipro Elite NLTH Coding / Programming Questions
visited[*i] = true;
queue.push_back(*i);
int main()
Graph g(4);
g.addEdge(0, 1);
g.addEdge(0, 2);
g.addEdge(1, 2);
Wipro Elite NLTH Coding / Programming Questions
g.addEdge(2, 0);
g.addEdge(2, 3);
g.addEdge(3, 3);
g.BFS(2);
return 0;
Output
2031
Wipro Elite NLTH Coding / Programming Questions
18. #include <stdio.h>
#include <stdlib.h>
struct node {
int data;
};
newNode->data = value;
newNode->left = NULL;
newNode->right = NULL;
Wipro Elite NLTH Coding / Programming Questions
return newNode;
root->left = createNode(value);
return root->left;
root->right = createNode(value);
return root->right;
int main(){
Wipro Elite NLTH Coding / Programming Questions
struct node *root = createNode(1);
insertLeft(root, 2);
insertRight(root, 3);
Output - 1 2 3
#include<stdio.h>
#include<conio.h>
#define MAX 10
int G[MAX][MAX],i,j,n,u;
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&G[i][j]);
scanf("%d",&u);
dijkstra(G,n,u);
Wipro Elite NLTH Coding / Programming Questions
return 0;
int cost[MAX][MAX],distance[MAX],pred[MAX];
int visited[MAX],count,mindistance,nextnode,i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(G[i][j]==0)
Wipro Elite NLTH Coding / Programming Questions
cost[i][j]=INFINITY;
else
cost[i][j]=G[i][j];
for(i=0;i<n;i++)
distance[i]=cost[startnode][i];
pred[i]=startnode;
visited[i]=0;
distance[startnode]=0;
visited[startnode]=1;
count=1;
Wipro Elite NLTH Coding / Programming Questions
while(count<n-1)
mindistance=INFINITY;
for(i=0;i<n;i++)
if(distance[i]<mindistance&&!visited[i])
mindistance=distance[i];
nextnode=i;
visited[nextnode]=1;
Wipro Elite NLTH Coding / Programming Questions
for(i=0;i<n;i++)
if(!visited[i])
if(mindistance+cost[nextnode][i]<distance[i])
distance[i]=mindistance+cost[nextnode][i];
pred[i]=nextnode;
count++;
for(i=0;i<n;i++)
if(i!=startnode)
printf("\nDistance of node%d=%d",i,distance[i]);
Wipro Elite NLTH Coding / Programming Questions
printf("\nPath=%d",i);
j=i;
do
j=pred[j];
printf("<-%d",j);
}while(j!=startnode);
}
Wipro Elite NLTH Coding / Programming Questions
Output:
#include <stdio.h>
#include <limits.h>
Wipro Elite NLTH Coding / Programming Questions
#include<stdbool.h>
#define V 5
return min_index;
printf("Edge \tWeight\n");
int parent[V];
int key[V];
bool mstSet[V];
key[0] = 0;
mstSet[u] = true;
printMST(parent, V, graph);
}
Wipro Elite NLTH Coding / Programming Questions
int main()
23
(0)--(1)--(2)
|/\|
6| 8/ \5 |7
|/ \|
(3)-------(4)
9 */
{2, 0, 3, 8, 5},
Wipro Elite NLTH Coding / Programming Questions
{0, 3, 0, 0, 7},
{6, 8, 0, 0, 9},
{0, 5, 7, 9, 0}};
primMST(graph);
return 0;
Output:
Edge Weight
0-1 2
1-2 3
0-3 6
1-4 5