Solution for Data Structure May 2016 INDEX Q1 a 2-3 b 4 c. 4-6 d 7 Q2- a 8-12 b 12-14 Q3 a 15-18 b 18-22 Q4- a 22-35 B..N.A Q5 a 36-38 b N.A Q6- a 39-42 b 43 1 www.brainheaters.in
Q1) Ans: (a) Define ADT with an example. 2 www.brainheaters.in
3 www.brainheaters.in
(b) What are the advantages of using linked list over arrays? Ans: (c) Describe Expression tree with an example. Ans: 4 www.brainheaters.in
The first three symbol are operands, so we create one-node tree push pointers to them onto a stack. Next, 4 * is read,so two pointers to tree are popped,a new tree is formed and a pointer to it is pushed onto the stack. Next, a + is read so two pointers to tree are popped a new tree is formed and a pointer to it is pushed onto the stack 5 www.brainheaters.in
6 www.brainheaters.in
(d) Write a program in C to implement insertion sort. Ans: 7 www.brainheaters.in
Q2) Ans: (a) Discuss file I/O in C language with different library function. 8 www.brainheaters.in
9 www.brainheaters.in
Compare Text file and Binsry file Basic file operation 10 www.brainheaters.in
Sample program for creating a text file using putc() : #include<stdio.h> void main() File *fp;char file[20]; char x; printf( \n Enter file name: ); 11 www.brainheaters.in
(b) Explain recursion as an application of stack with example. Ans: Any recursive function can be converted to non-recursive function through use of stack. A recursive call is similar to a call to another function. 12 www.brainheaters.in
Tail Recursion: 13 www.brainheaters.in
14 www.brainheaters.in
Q3) Ans: (a) Write a menu driven program in C to implement Queue ADT.The program should perform the following operation. (i) Inserting an element in the queue. (ii) Deleting an element from the queue (iii) Displaying the queue. (iv) Exiting the program. 15 www.brainheaters.in
16 www.brainheaters.in
return(0); 17 www.brainheaters.in
Output Enter 5 elements : 5 4 3 2 1 5 4 3 2 1 3 2 1 Ans: (b) Write a function to implement indexed sequential search.explain with an example. 18 www.brainheaters.in
19 www.brainheaters.in
20 www.brainheaters.in
21 www.brainheaters.in
Q4) (a) Write a C program to implement a Doubly linked list which perform the following operations: (i) Inserting element in the beginning. (ii) Inserting element in the end (iii) Inserting after an element (iv) Deleting a particular element. (v) Displaying the list. Ans: C Program to Implement a Doubly Linked List & provide Insertion, Deletion & Display Operations */ #include <stdio.h> #include <stdlib.h> struct node struct node *prev; int n; struct node *next; *h,*temp,*temp1,*temp2,*temp4; 22 www.brainheaters.in
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; printf("\n 1 - Insert at beginning"); printf("\n 2 - Insert at end"); printf("\n 3 - Insert at position i"); printf("\n 4 - Delete at i"); printf("\n 5 - Display from beginning"); printf("\n 6 - Display from end"); printf("\n 7 - Search for element"); printf("\n 8 - Sort the list"); 23 www.brainheaters.in
printf("\n 9 - Update an element"); printf("\n 10 - Exit"); while (1) printf("\n Enter choice : "); scanf("%d", &ch); switch (ch) case 1: insert1(); break; case 2: insert2(); break; case 3: insert3(); break; case 4: delete(); break; case 5: traversebeg(); break; case 6: temp2 = h; if (temp2 == NULL) 24 www.brainheaters.in
printf("\n Error : List empty to display "); else printf("\n 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("\n Wrong choice menu"); /* TO create an empty node */ void create() 25 www.brainheaters.in
int data; temp =(struct node *)malloc(1*sizeof(struct node)); temp->prev = NULL; temp->next = NULL; printf("\n Enter value to node : "); scanf("%d", &data); temp->n = data; count++; /* TO insert at beginning */ void insert1() if (h == NULL) create(); h = temp; temp1 = h; else create(); temp->next = h; h->prev = temp; h = temp; 26 www.brainheaters.in
/* To insert at end */ void insert2() if (h == NULL) create(); h = temp; temp1 = h; else create(); temp1->next = temp; temp->prev = temp1; temp1 = temp; /* To insert at any position */ void insert3() int pos, i = 2; printf("\n Enter position to be inserted : "); scanf("%d", &pos); temp2 = h; 27 www.brainheaters.in
if ((pos < 1) (pos >= count + 1)) printf("\n Position out of range to insert"); return; if ((h == NULL) && (pos!= 1)) printf("\n Empty list cannot insert other than 1st position"); return; if ((h == NULL) && (pos == 1)) create(); h = temp; temp1 = h; return; else while (i < pos) temp2 = temp2->next; i++; create(); temp->prev = temp2; 28 www.brainheaters.in
temp->next = temp2->next; temp2->next->prev = temp; temp2->next = temp; /* To delete an element */ void delete() int i = 1, pos; printf("\n Enter position to be deleted : "); scanf("%d", &pos); temp2 = h; if ((pos < 1) (pos >= count + 1)) printf("\n Error : Position out of range to delete"); return; if (h == NULL) printf("\n Error : Empty list no elements to delete"); return; else 29 www.brainheaters.in
while (i < pos) temp2 = temp2->next; i++; if (i == 1) if (temp2->next == NULL) printf("node deleted from list"); free(temp2); temp2 = h = NULL; return; if (temp2->next == NULL) temp2->prev->next = NULL; free(temp2); printf("node deleted from list"); return; temp2->next->prev = temp2->prev; if (i!= 1) temp2->prev->next = temp2->next; /* Might not need this statement if i == 1 check */ if (i == 1) h = temp2->next; 30 www.brainheaters.in
printf("\n Node deleted"); free(temp2); count--; /* Traverse from beginning */ void traversebeg() temp2 = h; if (temp2 == NULL) printf("list empty to display \n"); return; printf("\n Linked list elements from begining : "); while (temp2->next!= NULL) printf(" %d ", temp2->n); temp2 = temp2->next; printf(" %d ", temp2->n); /* To traverse from end recursively */ 31 www.brainheaters.in
void traverseend(int i) if (temp2!= NULL) i = temp2->n; temp2 = temp2->next; traverseend(i); printf(" %d ", i); /* To search for an element in the list */ void search() int data, count = 0; temp2 = h; if (temp2 == NULL) printf("\n Error : List empty to search for data"); return; printf("\n Enter value to search : "); scanf("%d", &data); while (temp2!= NULL) if (temp2->n == data) 32 www.brainheaters.in
printf("\n Data found in %d position",count + 1); return; else temp2 = temp2->next; count++; printf("\n Error : %d not found in list", data); /* To update a node value in the list */ void update() int data, data1; printf("\n Enter node data to be updated : "); scanf("%d", &data); printf("\n Enter new data : "); scanf("%d", &data1); temp2 = h; if (temp2 == NULL) printf("\n Error : List empty no node to update"); return; while (temp2!= NULL) 33 www.brainheaters.in
if (temp2->n == data) temp2->n = data1; traversebeg(); return; else temp2 = temp2->next; printf("\n Error : %d not found in list to update", data); /* To sort the linked list */ void sort() int i, j, x; temp2 = h; temp4 = h; if (temp2 == NULL) printf("\n List empty to sort"); return; 34 www.brainheaters.in
for (temp2 = h; temp2!= NULL; temp2 = temp2->next) for (temp4 = temp2->next; temp4!= NULL; temp4 = temp4->next) if (temp2->n > temp4->n) x = temp2->n; temp2->n = temp4->n; temp4->n = x; traversebeg(); Ans: N.A (b) Apply Huffman coding for the word MALYALAM give the Huffman code for each symbol. 35 www.brainheaters.in
Q5 Ans: (a) Explain any one application linked list with an example. 36 www.brainheaters.in
return(head); 37 www.brainheaters.in
Ans: N.A (b) Write a program in C to delete a node from a binary search tree.the program should consider all the possible cases. 38 www.brainheaters.in
Q6) Ans: (a) Write a program in C to implement the BFS traversal of a graph Explain the code with an example. Void BFS(int v) 39 www.brainheaters.in
40 www.brainheaters.in
41 www.brainheaters.in
42 www.brainheaters.in
(b) Hash the following in a table of size 11.Use any two collision resolution techniques 23,55,10,71,67,32,100,18,10,90,44 Ans: note: similar 43 www.brainheaters.in