Differentiate Between Data Type and Data Structures
Differentiate Between Data Type and Data Structures
(Jan 2012)
In many cases, we need to declare a set of variables that are of the same data type. Instead of
declaring each variable separately, we can declare all variable collectively in the format of an
array. Each variable, as an element of the array, can be accessed either through the array elements
references or through a pointer that references the array.
Data Type: Data Type of a variable is a set of values the variable may assume. Eg. int, char & real
Data Structures: Data structure mean the way of organizing data values with the help of existing data
types. Eg. Array, stack queue, & tree.
Ø Operating System
Ø Network analysis
Mention the advantages of representing stacks using linked lists than arrays.
• It is not necessary to specify the number of elements to be stored in a stack during its
declaration, since memory is allocated dynamically at run time when an element is added to the
stack • Insertions and deletions can be handled easily and efficiently • Linked list representation
of stacks can grow and shrink in size without wasting memory space, depending upon the
insertion and deletion that occurs in the list • Multiple stacks can be represented efficiently using
a chain for each stack
A cyclic graph is a directed graph which contains a path from at least one node back
to itself. In simple terms cyclic graphs contain a cycle. An acyclic graph is a
directed graph which contains absolutely no cycle, that is no node can be traversed
back to itself.
An internal sort is any data sorting process that takes place entirely within the main
memory of a computer. This is possible whenever the data to be sorted is small enough to all be
held in the main memory. External sorting is a term for a class of sorting algorithms that can
handle massive amounts of data. External sorting is required when the data being sorted do not
fit into the main memory of a computing device (usually RAM) and instead they must reside in
the slower external memory (usually a hard drive)
It is an open hashing technique. A pointer field is added to each record location, when an
overflow occurs, this pointer is set to point to overflow blocks making a linked list. In this
method, the table can never overflow, since the linked lists are only extended upon the arrival of
new keys
Write the limitations of using getchar() and scanf() functions for reading strings. (Jan 2009)
getchar(): It is written in standard I/O library. It reads a single character only from a standard
input device. This function is not use for reading strings. Scanf: It is use for reading single string
at a time. When there is a blank was typed, the scanf() assumes that it is an end.
This is a C Program to identify whether the string is palindrome or not using stack.
Problem Description
This program takes a string and checks whether the string is palindrome or not using stack.
Problem Solution
1. Take a string as input.
2. Store the string in the stack array.
3. Check whether the string is palindrome or not.
Program/Source Code
Here is source code of the C Program to identify whether the string is palindrome or not using stack.
The C program is successfully compiled and run on a Linux system. The program output is also
shown below.
1. /*
2. * C Program to Identify whether the String is Palindrome or not using Stack
3. */
4. #include <stdio.h>
5. #include <stdlib.h>
6. #include <string.h>
7. #define MAX 50
8.
9. int top = -1, front = 0;
10. int stack[MAX];
11. void push(char);
12. void pop();
13.
14. void main()
15. {
16. int i, choice;
17. char s[MAX], b;
18. while (1)
19. {
20. printf("1-enter string\n2-exit\n");
21. printf("enter your choice\n");
22. scanf("%d", &choice);
23. switch (choice)
24. {
25. case 1:
26. printf("Enter the String\n");
27. scanf("%s", s);
28. for (i = 0;s[i] != '\0';i++)
29. {
30. b = s[i];
31. push(b);
32. }
33. for (i = 0;i < (strlen(s) / 2);i++)
34. {
35. if (stack[top] == stack[front])
36. {
37. pop();
38. front++;
39. }
40. else
41. {
42. printf("%s is not a palindrome\n", s);
43. break;
44. }
45. }
46. if ((strlen(s) / 2) = = front)
47. printf("%s is palindrome\n", s);
48. front = 0;
49. top = -1;
50. break;
51. case 2:
52. exit(0);
53. default:
54. printf("enter correct choice\n");
55. }
56. }
57. }
58.
59. /* to push a character into stack */
60. void push(char a)
61. {
62. top++;
63. stack[top] = a;
64. }
65.
66. /* to delete an element in stack */
67. void pop()
68. {
69. top--;
70. }
Program Explanation
1. Take a string as input and store it in the array s[].
2. Load each character of the array s[] into the array stack[].
3. Use variables front and top to represent the last and top element of the array stack[].
4. Using for loop compare the top and last element of the array stack[]. If they are equal, then delete
the top element, increment the variable front by 1 and compare again.
5. If they are not equal, then print the output as “It is not a palindrome”.
6. Compare the elements in the steps 4-5 upto the middle element of the array stack[].
7. If every characters of the array is equal, then it is a paliandrome.