0% found this document useful (0 votes)
19 views37 pages

Introduction

The document discusses data types and data structures. It defines data as facts or entities used in calculations or manipulations. There are two main data types - numerical and alphanumeric. Data structures organize data and specify access methods, relationships between elements, and processing alternatives. Common data structures include arrays, lists, trees, and records. Arrays store elements in contiguous memory locations, while lists link elements using pointers. Data structures provide efficient ways to store and organize data for computer programs.

Uploaded by

Subhashree
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
0% found this document useful (0 votes)
19 views37 pages

Introduction

The document discusses data types and data structures. It defines data as facts or entities used in calculations or manipulations. There are two main data types - numerical and alphanumeric. Data structures organize data and specify access methods, relationships between elements, and processing alternatives. Common data structures include arrays, lists, trees, and records. Arrays store elements in contiguous memory locations, while lists link elements using pointers. Data structures provide efficient ways to store and organize data for computer programs.

Uploaded by

Subhashree
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 37

INTRODUCTION

Data:- data is the basic fact or entity that is utilized in


calculation or manipulation. There are two different types of
data such as numerical data and alpha numerical data. And
these two type specify the nature of data item that
undergoes certain operations . integers and floating point
numbers are of numerical data type.
Data is represented with the help of characters like
alphabets(A-Z , a-z), digits(0-9) or special character(+,-,*,&,?
Etc.) . Data may be a single value or it may be a set of
values, must be organized in a particular fashion.
Data Item:- A set of characters which are used together to
represent a specific data element e.g. name of a student in
a class is represented by the data item NAME.
What is data structures???
 Data Structure is a representation of the logical
relationship existing between individual elements of
data. Or A Data structure is a way of organizing all
data items that considers not only the elements
stored but also their relationship to each other .
 a data structure is a particular way of storing and
organizing data in a computer so that it can be used
efficiently
 Data structures are generally based on the ability of
a computer to fetch and store data at any place in its
memory, specified by an address
 Data structure mainly specifies the
following four things:-
 i) Organization of data
 ii) Accessing methods
 iii) Degree of associativity
 iv) Processing alternatives for information
Classification of Data Structure
 Primitive Data Structure :- The data
structure that are atomic or indivisible
are called primitive. Example are integer,
real, float, Boolean and characters.
 Non-Primitive data structure :- The
data structure that are not atomic are
called non primitive or composite.
Examples are records, arrays and strings.
These are more sophisticated. The non
primitive data structures emphasize on
structuring f a group of homogenous or
heterogeneous data items
Linear Data Structure :- In a linear data
structure, the data items are arranged in a linear
sequence. Example is array.

Non Linear data structure :- In a non-linear data


structure, the data items are not in sequence. Example
is tree.
 Homogenous Data Structure :- In
homogenous data structure, all the elements are
of same type. Example is array.
 Non Homogenous Data Structure :- in non
homogenous structures, all the elements are
may or may not be of the same types. Example is
records.
 Static Data Structure :- Static
structures are ones whose sizes and
structures, associated memory location
are fixed at compile time.
 Dynamic Data Structure :- Dynamic
structures are ones which expand or
shrink as required during the program
execution and there associate memory
location change.
MEMORY ALLOCATION IN C
There are two types of memory allocations
possible in C

1.Compile-time or static allocation

2.Run-time or dynamic allocation (using


pointers)
COMPILE TIME OR STATIC
ALLOCATION
 In compile time or static allocation,the required amount of memory is
allocated to the program element (identifiers names which include
variables name,function name,program name etc .) at the start of the
program. Here the memory to be allocated to the variable is fixed and
is detemined by the compiler at the compiler time
 For example
int x,y;
Float a[5];
The problem with static memory allocation is that if u store
less number of elements for which you have declared
memory, than the rest of the memory will wasted.this leads
to insufficient use of memory.
DYNAMIC TIME ALLOCATION

 The concept of run time or dynamic allocation helps us to


overcome this problem in arrays, as well as allow us to get the
required chunk of memory at run time (or we can say as the
need arise). This is best suited type of allocation where we do
not know the memory requirement in advance, which in case
with most real- life problems .dynamic allocation gives
flexibility for programmer. As well as it makes efficient use of
memory by allocating the required amount of memory
whenever needed, unlike static allocation where we declare the
amount to be allocated statistically
 C provides the following dynamic allocation and deallocation
functions:
 1.malloc()
 2.calloc()
 3.free()
 4. realloc()
 The malloc() function allocates a block of
memory in bytes. The user should explicitly give
the block size it requires for the use. The
malloc() function is like a request to the RAM of
the system allocate memory, if the request is
granted (i.e.,the malloc() function stays
successful in allocating memory), returns a
pointer to the first block of that memory.
 Syntax:- malloc(no. of elements* size of each
element)

 Int *ptr=(int*)malloc(10 *size of(int));


 (datatype) *(variable name) =(datatype*)malloc(number of elements*size
of (datatype));
THE CALLOC() FUNCTION
This function works exactly similar to malloc() function except for the fact
that it needs two arguments as against one argument required by
malloc(). This function is available in header file<stdlib.h> or
<alloc.h> in Turbo C.
Syntax: calloc(number of elemnts, size of each elemnt);
Example: Calloc(10,2)
Int *ptr =(int*) calloc(10,2)
comparision in malloc() and calloc()
1. The memory space allocated by malloc() function contains garbage
values ,while memory space allocated by calloc() function has
contains all zeros . values in it while malloc() have garbage values.
2. Both returns memory address
The free() function is used to de-allocate the previously
allocated memory using malloc()
Or calloc() functions.
The syntax of this function is:
Syntax:- Free(ptr_var);
When ptr_var the pointer in which the address of the
allocated memory block is assigned. The free function is
used to return the allocated memory to the system RAM.
THE REALLOC() FUNCTION
 This function is used to resize the sixe of memory
block, which is already allocated(i.e.,to modify
the size of already allocated memory block). It
found use if the allocated memory block is
insufficient for current application.
 Syntax: Ptr_var=realloc(ptr_var, new_size);
 Where ptr_var is the pointer holding the starting
address of already allocated memory block. And
new_size is the size in bytes you want the system
to allocate now, it may be smaller than the size of
previously allocated memory block or may be
greater than the size of previously allocated
memory block depending upon the requirement.
This function is available in header file
<stdlib.h>
 Ptr_var=malloc(size);
 An array is a collection of similar elements that is
all the elements in array should have same
datatype.
 An array stores large amount of data in a single
variable .An array stores all the elements at
contiguous memory location .
 It is also defined as a set of finite number of
homogenous elements or data items. It means an
array can contain one type of data only, either all
integers, all floating point numbers or all
characters.
 Exp:- int a[5];
 There is no bound checking concept in arrays .it
means that one can attempt to enter any no.of
values irrespective of the upper bound i.e.upper
bound is not checked.
Multi-dimensional arrays
The arrays discussed so far are known as one-dimensional
arrays because the data is organized linearly in only one
direction. Many applications require that data be stored in
more than one dimension. Figure 11.5 shows a table, which
is commonly called a two-dimensional array.

Figure 11.5 A two-dimensional array


11.18
Array declaration is done by the syntax:
Datatype arrayname{size}
e.g.: int a [5]

datatype arrayname size

a[0] a[1] a[2] a[3] a[4]


 The individual element of an array can be accessed by specifying
name of the array, followed by index or subscript inside square
bracket. E.g.:a[5];
 The first element of the array has index zero[0]. So in an array of 15
elements the first array will be a[0] and last a[14] .
 The elements of array will always be stored in consecutive memory
location.
 The size of an array can be calculate by this equation
(upper bound- lower bound )+1
e.g.(14-0)+1 where 14 is the upper bound and o is the lower bound.
So total 15 elements are there in this array.
 Arrays can always be read or written through loop. In case of one
dimensional array it requires one loop for reading and one loop for
writing and in case of two dimensional array it requires two loops for
each operation.
SOME COMMON OPERATIONS PERFORMED
ON ARRAY

1.Creation of an array
2.Traversing of an array
3.Insertion of new elements
4.Deletion of required elements
5.Modification of an element
6.Merging of arrays
 Lists:- A list can be defined as a collection of variable number
of data items. List are the most commonly used non-primitive
data structures. An element of list must contain at least two
fields, one for storing data or information and other for storing
address of next element.
 Technically each such element of linked list is called bas a
node, therefore linked list can be called as collection of nodes.
 It is a dynamic data structure because it’s memory is not fixed.
We tell all the values at run time so further it can be added.Let
say if we have to add some more data in our list then it can
increase it’s memory ,only the condition is that memory
should be available so that it can store more elements if
needed.
5698 900

600 900 1000

INFO PART NEXT PART


INFO PART: It contains the own information of the
address. also known as information field.
NEXT PART: It stores the address of the next element.
also known as pointer field because it points to some
address.
Applications of linked lists
A linked list is a very efficient data structure for sorted list
that will go through many insertions and deletions. A linked
list is a dynamic data structure . For example, a linked
list could be used to hold the records of students in a
school. Each quarter or semester, new students enroll in
the school and some students leave or graduate.

A linked list is a suitable structure if a large number of


insertions and deletions are needed, but searching a
linked list is slower that searching an array.
11.24
 A stack is also an ordered collection of elements like array
but it has a special feature that deletion and insertion of
elements can be done only from one end, called the top of
the stack(TOP).
 It is a linear data structure.
 Works on the policy of last in first out (LIFO).
 Insertion of element is called Push .
 Deletion of element is called Pop .
 Initially top is -1 ,it is never 0 because we add +1
simultaneously and therefore it starts inserting element at
0th position and so on.
 It is also an application of arrays and linked lists.
 Stack implementation is done by Static implementation
(using array)and Dynamic implementation(using pointer) .
TOP OF
STACK
 Queues are first in first out type of data structures. In a
queue new elements are added to the queue from one
end called rear end and the elements are always
removed from other end called the front end.
 Works on the policy of first in first out (FIFO).
 New elements are added to the queue from one end
called rear end.
 Elements are always removed from other end called
front end
 It’s example is queue of a railway reservation, fee
deposit line..etc
 It is also a linear data structure and is an application of
arrays and linked lists.
 It can also be implemented by static and dynamic
implementations.
Queue with 6 elements

56 45 66 32 78 54

Front end Rear end


TREES
 A tree can be defined as finite set of data items.
 Trees represent the hierarchical relationship
between various elements.
 It is non-linear type of data structure.
 It has no predecessor and successor.
ROOT NODE

GROW SUBTREES
TREES

 Tree is a non-linear type of data structure in


which data items are arranged in some sorted
sequence.
 There is a special data item at the top of
hierarchy called the Root of the tree
 The remaining data items called the subtree.

 The tree always grows in length towards bottom


in data structure.
GRAPHS

 Graph is a mathematical non-linear data structure


capable of representing many kinds of physical
structures.
 It has found applications in diverse fields like
geography, chemistry and engineering sciences.
 It has vertices and edges.
 Represented by G(V,E) where V is the vertices set
and E is the edges set.
Here 1,2,3,4,5 are the vertices and the edges
are joined by the vertices.
TYPES OF GRAPHS
• Directed Graph
• Non-directed Graph
• Connected Graph
• Non-Connected Graph
• Simple Graph
• Multi Graph
 TRAVERSING: Accessing each data exactly once in the data
structure.
 SEARCHING: Finding the location of data within the data
structure which satisfy searching condition.
 INSERTING: Adding a new data in the data structure.
 DELETING: Removing a data from the structure .
 SORTING: Arranging the data in some logical order e.g
ascending,descending.etc.
 MERGING: Combining the data of two different sorted files
into a single sorted file.
TIME TO REVISE :
 Q.1 What is the difference between array and list?
Ans.

s.no. ARRAY LIST


1. It is a set It is a ordered set
consistent of a consistent of a
fixed number of variable number of
data items. data items.

2. Insertion and Insertion and


deletion deletion
operations are operations can be
performed. performed using
pointers.
TIME TO REVISE

 Q.2 What is the difference between searching and sorting


operation?
Ans. Searching operation finds the presence of the desired data item
in the list of data items. It may also find the location of all elements
that satisfy certain conditions. Sorting is the process of arranging
all data items in a data structure in a particular order, say for
example, either in ascending or descending order.
 Q.3 Name the different operations that can be performed on the
data structures?
Ans. Traversing, searching,inserting,deleting,sorting and merging.
 Q.4 On which policies does the stacks and queues works?
Ans. Stacks works on LIFO(last in first out) policy whereas queues
works on FIFO(first in first out) policy.

You might also like