C
C
Code
#include<stdio.h>
#include<conio.h>
void main()
{
int m[10],ins,i,n,pos;
clrscr();
printf("How many elements ?");
scanf("%d",&n);
printf("\nEnter %d elements: \n",n);
for(i=0;i<n;i++)
{
printf("\n");
scanf("%d",&m[i]);
}
printf("\nEnter number to be inserted:");
scanf("\n%d",&ins);
printf("\nEnter position:");
scanf("\n%d",&pos);
for(i=n;i>pos;i--)
{
m[i]=m[i-1];
}
m[pos]=ins;
n++;
printf("\nArray after insertion\n");
for(i=0;i<n;i++)
{
printf("\n%d\n",m[i]);
}
getch();
}
Output:
How many elements:5
Enter 5 elementes:
1
2
5
6
4
Enter number to be inserted:3
Enter position:2
Array after insertion
1
2
3
5
6
4
2. To delete Element of array
Code:
#include<stdio.h>
#include<conio.h>
void main()
{
int m[10],del,i,j,n;
clrscr();
printf("How many elements ?");
scanf("%d",&n);
printf("\nEnter %d elements\n",n);
for(i=0;i<n;i++)
{
scanf("%d",&m[i]);
}
printf("\nEnter number for delete:");
scanf("%d",&del);
for(i=0;i<n;i++)
{
if(m[i]==del)break;
}
for(j=i;j<n;j++)
{
m[j]=m[j+1];
}
n--;
printf("\nAfter deletion\n");
for(i=0;i<n;i++)
{
printf("%d\n",m[i]);
}
getch();
}
Output:
How many elements?5
Enter 5 elements
1
20
10
30
60
Enter element for delete
20
After deletion
1
10
30
60
3. To search an Element in array
Code:
#include <stdio.h>
#include <conio.h>
int main()
{
int num[10], i, beg, end, mid, pos = -1, value;
clrscr();
beg = 0;
end = 10 - 1;
while(beg <= end)
{
mid = (beg + end) / 2;
if( value == num[mid] )
{
pos = mid + 1;
break;
}
else if ( value >= num[mid] )
beg = mid + 1;
else
end = mid - 1;
}
if( pos == -1 )
{
printf( "\n The element %d not found.", value );
}
else
{
printf( "\n The position of %d is ::: %d" , value, pos );
}
getch();
return 0;
}
Output:
Code:
#include <stdio.h>
int main()
{
int arr[100] = { 0 };
int i, x, pos, n = 10;
for (i = 0; i < 10; i++)
arr[i] = i + 1;
for (i = 0; i < n; i++)
printf("%d ", arr[i]);
printf("\n");
x = 50;
pos = 5;
n++;
arr[pos - 1] = x;
return 0;
}
Output
1 2 3 4 5 6 7 8 9 10
1 2 3 4 50 5 6 7 8 9 10
Time Complexity: O(N), Where N is the number of elements in the array
Auxiliary Space: O(1)
5. Write a program to search an Element in array using linear search
Code:
#include <stdio.h>
int main()
{
int array[50], search, c, n;
return 0;
}
Output:
Code;
#include <stdio.h>
#include <conio.h>
int main()
{
int num[10], i, beg, end, mid, pos = -1, value;
clrscr();
beg = 0;
end = 10 - 1;
while(beg <= end)
{
mid = (beg + end) / 2;
if( value == num[mid] )
{
pos = mid + 1;
break;
}
else if ( value >= num[mid] )
beg = mid + 1;
else
end = mid - 1;
}
if( pos == -1 )
{
printf( "\n The element %d not found.", value );
}
else
{
printf( "\n The position of %d is ::: %d" , value, pos );
}
getch();
return 0;
}
Output:
Code:
#include <stdio.h>
int main() {
int n, array[50], c, d, t;
scanf("%d", &array[c]);
t = array[d];
array[d] = array[d - 1];
array[d - 1] = t;
d--;
}
}
printf("%d\n", array[c]);
return 0;
}
Output:
Code:
#include <stdio.h>
int main() {
int n, array[50], c, d, t;
scanf("%d", &array[c]);
t = array[d];
array[d] = array[d - 1];
array[d - 1] = t;
d--;
}
}
printf("%d\n", array[c]);
return 0;
}
Output:
Code:
#include <stdio.h>
int main() {
return 0;
Output:
Enter number of elements 5
Enter 5 integers
20
90
0
-23
78
Sorted list in ascending order:
-23
0
20
78
90
10. Write a program to traverse a linked list
Code:
#include<stdio.h>
#include<stdlib.h>
void create(int);
void traverse();
struct node
{
int data;
struct node *next;
};
struct node *head;
void main ()
{
int choice,item;
do
{
printf("\n1.Append List\n2.Traverse\n3.Exit\n4.Enter your choice?");
scanf("%d",&choice);
switch(choice)
{
case 1:
printf("\nEnter the item\n");
scanf("%d",&item);
create(item);
break;
case 2:
traverse();
break;
case 3:
exit(0);
break;
default:
printf("\nPlease enter valid choice\n");
}
}while(choice != 3);
}
void create(int item)
{
struct node *ptr = (struct node *)malloc(sizeof(struct node *));
if(ptr == NULL)
{
printf("\nOVERFLOW\n");
}
else
{
ptr->data = item;
ptr->next = head;
head = ptr;
printf("\nNode inserted\n");
}
}
void traverse()
{
struct node *ptr;
ptr = head;
if(ptr == NULL)
{
printf("Empty list..");
}
else
{
printf("printing values . . . . .\n");
while (ptr!=NULL)
{
printf("\n%d",ptr->data);
ptr = ptr -> next;
}
}
}
Output :
1.Append List
2.Traverse
3.Exit
4.Enter your choice?1
Node inserted
1.Append List
2.Traverse
3.Exit
4.Enter your choice?1
Node inserted
1.Append List
2.Traverse
3.Exit
4.Enter your choice?2
printing values . . . . .
233
23
11. Write a program to insert an Element in a linked list at beginning
Code:
#include <stdio.h>
#include <stdlib.h>
struct node
{
struct node *prev;
int n;
struct node *next;
}*h,*temp,*temp1,*temp2,*temp4;
void insert1();
void insert2();
void insert3();
void traversebeg();
void traverseend(int);
void sort();
void search();
void update();
void delete();
int count = 0;
void main()
{
int ch;
h = NULL;
temp = temp1 = NULL;
break;
case 5:
traversebeg(); break;
case 6:
temp2 = h;
if (temp2 == NULL)
printf(" Error : List empty to display ");
else
{
printf(" Reverse order of linked list is : ");
traverseend(temp2->n);
}
break;
case 7:
search();
break;
case 8:
sort();
break;
case 9:
update();
break;
case 10:
exit(0);
default:
printf(" Wrong choice menu");
}
}
}
void create()
{
int data;
void insert1()
{
if (h == NULL)
{
create();
h = temp;
temp1 = h;
}
else
{
create();
temp->next = h;
h->prev = temp;
h = temp;
}
}
void insert2()
{
if (h == NULL)
{
create();
h = temp;
temp1 = h;
}
else
{
create();
temp1->next = temp;
temp->prev = temp1;
temp1 = temp;
}
}
void insert3()
{
int pos, i = 2;
void delete()
{
int i = 1, pos;
void traversebeg()
{
temp2 = h;
if (temp2 == NULL)
{
printf("List empty to display ");
return;
}
printf(" Linked list elements from begining : ");
void traverseend(int i)
{
if (temp2 != NULL)
{
i = temp2->n;
temp2 = temp2->next;
traverseend(i);
printf(" %d ", i);
}
}
void search()
{
int data, count = 0;
temp2 = h;
if (temp2 == NULL)
{
printf(" Error : List empty to search for data");
return;
}
printf(" Enter value to search : ");
scanf("%d", &data);
while (temp2 != NULL)
{
if (temp2->n == data)
{
printf(" Data found in %d position",count + 1);
return;
}
else
temp2 = temp2->next;
count++;
}
printf(" Error : %d not found in list", data);
}
void update()
{
int data, data1;
temp2->n = data1;
traversebeg();
return;
}
else
temp2 = temp2->next;
void sort()
{
int i, j, x;
temp2 = h;
temp4 = h;
if (temp2 == NULL)
{
printf(" List empty to sort");
return;
}
temp4->n = x;
}
}
}
traversebeg();
}
Output:
1 - Insert at beginning
2 - Insert at end
3 - Insert at position i
4 - Delete at i
5 - Display from beginning
6 - Display from end
7 - Search for element
8 - Sort the list
9 - Update an element
10 - Exit
Enter choice : 1
Enter choice : 2
Enter choice : 4
Node deleted
Enter choice : 1
Enter choice : 3
Enter choice : 4
Enter choice : 1
Enter choice : 3
Enter choice : 4
Node deleted
Enter choice : 7
Code:
#include<stdio.h>
#include<stdlib.h>
void lastinsert(int);
struct node
{
int data;
struct node *next;
};
struct node *head;
void main ()
{
int choice,item;
do
{
printf("\nEnter the item which you want to insert?\n");
scanf("%d",&item);
lastinsert(item);
printf("\nPress 0 to insert more ?\n");
scanf("%d",&choice);
}while(choice == 0);
}
void lastinsert(int item)
{
struct node *ptr = (struct node*)malloc(sizeof(struct node));
struct node *temp;
if(ptr == NULL)
{
printf("\nOVERFLOW");
}
else
{
ptr->data = item;
if(head == NULL)
{
ptr -> next = NULL;
head = ptr;
printf("\nNode inserted");
}
else
{
temp = head;
while (temp -> next != NULL)
{
temp = temp -> next;
}
temp->next = ptr;
ptr->next = NULL;
printf("\nNode inserted");
}
}
}
Output
Node inserted
Press 0 to insert more ?
0
Node inserted
Press 0 to insert more ?
2
13. Write a program of stack implementation using array
Code:
#include <stdio.h>
#include <stdlib.h>
#define SIZE 50
int main(void)
{
int value;
do {
printf("Enter value: ");
scanf("%d", &value);
if(value != 0) push(value);
else printf("value on top is %d\n", pop());
} while(value != -1);
return 0;
}
void push(int i)
{
p1++;
if(p1 == (tos+SIZE)) {
printf("Stack Overflow.\n");
exit(1);
}
*p1 = i;
}
int pop(void)
{
if(p1 == tos) {
printf("Stack Underflow.\n");
exit(1);
}
p1--;
return *(p1+1);
}
14. Write a program stack implementation of using linked list
Code:
#include <stdio.h>
#include <stdlib.h>
struct node
{
int info;
struct node *ptr;
}*top,*top1,*temp;
int topelement();
void push(int data);
void pop();
void empty();
void display();
void destroy();
void stack_count();
void create();
int count = 0;
void main()
{
int no, ch, e;
printf(" 1 - Push");
printf(" 2 - Pop");
printf(" 3 - Top");
printf(" 4 - Empty");
printf(" 5 - Exit");
printf(" 6 - Dipslay");
printf(" 7 - Stack Count");
printf(" 8 - Destroy stack");
create();
while (1)
{
printf(" Enter choice : ");
scanf("%d", &ch);
switch (ch)
{
case 1:
printf("Enter data : ");
scanf("%d", &no);
push(no);
break;
case 2:
pop();
break;
case 3:
if (top == NULL)
printf("No elements in stack");
else
{
e = topelement();
printf(" Top element : %d", e);
}
break;
case 4:
empty();
break;
case 5:
exit(0);
case 6:
display();
break;
case 7:
stack_count();
break;
case 8:
destroy();
break;
default :
printf(" Wrong choice, Please enter correct choice ");
break;
}
}
}
void create()
{
top = NULL;
}
void stack_count()
{
printf(" No. of elements in stack : %d", count);
}
void display()
{
top1 = top;
if (top1 == NULL)
{
printf("Stack is empty");
return;
}
int topelement()
{
return(top->info);
}
void empty()
{
if (top == NULL)
printf(" Stack is empty");
else
printf(" Stack is not empty with %d elements", count);
}
void destroy()
{
top1 = top;
Output:
1 - Push
2 - Pop
3 - Top
4 - Empty
5 - Exit
6 - Dipslay
7 - Stack Count
8 - Destroy stack
Enter choice : 1
Enter data : 56
Enter choice : 1
Enter data : 80
Enter choice : 2
Popped value : 80
Enter choice : 3
Top element : 56
Enter choice : 1
Enter data : 78
Enter choice : 1
Enter data : 90
Enter choice : 6
90 78 56
Enter choice : 7