Concept of Data Structures

This chapter introduces the fundamental concepts of data structures, including their definition, types, and importance. It also covers abstract data types (ADTs) and their role in data abstraction.

Questions And Solutions


2078 Chaitra

Explain the importance of data structures and point out the areas in which data structures are being applied extensively. Explain why List is called as Abstract Data type (ADT).
Answer:

Importance of data structures

Data structures help organize and manage data in a way that makes it easier and faster to use. For example, imagine organizing books in a library—if they are sorted properly, finding a book becomes quick and simple. Similarly, data structures make computers work efficiently when handling lots of information.

The areas where data structures are being applied extensively are listed below:

  1. Mobile Apps: For example, your contact list uses a data structure to store names and numbers.
  2. Websites: Online shopping carts use data structures to track items.
  3. Navigation Apps: GPS systems use data structures to find the shortest route.
  4. Games: Pathfinding and game mechanics are built using data structures.
  5. Social Media: Platforms like Facebook or Instagram organize posts and comments using data structures.

A List is an Abstract Data Type because it defines a set of operations (like add, remove, get) that can be performed on a sequence of elements, without specifying how that sequence is stored in memory. This separation of interface (what it does) from implementation (how it does it) is the key characteristic of an ADT. For example, a List can be implemented using an array or a linked list, but the user interacts with it through the same set of operations defined by the List ADT.


2078 Poush

Define Data Structure. Write down the difference between linear and non-linear data structure.

Answer:

Data Structure is a particluar way of sorting and organizing data in a computer so that it can be used efficiently. There are different ways to organize the data such as organizations of data into the stack, queue, list, tree, graph and so on.

The diiference between linear and non-linear data structure are tabulated below:

ParameterLinear Data StructureNon-Linear Data Structure
ArrangementData elements are connected sequentially. A user can traverse each element in one pass.Data elements are connected hierarchically and are present at various levels.
Complexity of ImplementationEasier to implement.More difficult to implement and understand compared to linear data structures.
LevelsAll data elements exist at a single level.Traversing requires multiple runs as elements exist at various levels.
Utilization of MemoryNot memory-efficient; does not utilize memory effectively.Memory-efficient; utilizes memory effectively.
Complexity of TimeTime complexity increases with the size of the input.Time complexity often remains consistent regardless of input size.
ApplicationsSuitable for application software development.Commonly used in image processing and Artificial Intelligence.
ExamplesList, Array, Stack, Queue.Map, Graph, Tree.

2074 Bhadra

Define data structure with its importance.

Answer:

Data Structure is a particluar way of sorting and organizing data in a computer so that it can be used efficiently. There are different ways to organize the data such as organizations of data into the stack, queue, list, tree, graph and so on.

The importance of Data Structures are listed below:

  1. Efficient storage and retrieval of data: Data structures allow you to store and retrieve data in an efficient manner. For example, using a hash table data structure, you can access an element in constant time, whereas searching for an element in an unordered list would take linear time.
  2. Improved performance: Data structures can help improve the performance of your code by reducing the time and space complexity of algorithms. For example, using a binary search tree instead of a linear search can significantly reduce the time it takes to find a specific element in a large dataset.
  3. Better problem solving: Data structures can help you solve complex problems by breaking them down into smaller, more manageable parts. For example, using a graph data structure can help you solve problems related to network flow or finding the shortest path between two points.
  4. Abstraction: Data structures provide a way to abstract the underlying complexity of a problem and simplify it, making it easier to understand and solve.
  5. Reusability: Data structures can be used in many different algorithms and applications, making them a useful tool in your programming toolbox.

2073 Bhadra

Differentiate between primitive and non-primitive data structure.

Answer:

The differences between primitive and non-primitive data structure are tabulated below:

ParameterPrimitive Data StructuresNon-Primitive Data Structures
DefinitionBasic and simple data types.More advanced and complex data types.
ComplexityEasy to use and understand.More complicated and needs extra effort.
Data TypeIncludes basic types like numbers and letters.Includes collections of data like lists or trees.
SizeFixed size depending on the type.Can grow or change in size.
ManipulationEasy to work with directly.Needs specific rules or algorithms to manage.
UsageStores single values like a number or character.Stores multiple values in an organized way.
Examplesint, char, float, boolean.Array, List, Stack, Queue, Tree, Graph.

2066 Bhadra

Why data structures are needed? Write any data structure as ADT and write applications of stacks.

Answer:

Data structures are needed due to the following reaons:

  • To identify and develop useful mathematical entities and operation to determine what classes of problems can be solved by using these entities and operations.
  • To determine representations for those abstract entities and to implement the abstract operations on these concrete representations.
  • To save computer memory because the memory of the computer is limited.
  • To maintain the execution time of the program, which determines the efficiency.

STACK AS AN ABSTRACT DATA TYPE

A stack is an ordered collection of items into which new items may be inserted and from which items may be removed at one end called the top of stack. The representation of a stack as an abstract data type is straight forward. We use eltype to denote the type of the stack element and parameterize the stack data type with eltype :

abstract typedef<<eltype>>  STACK(eltype) 
abstract empty(s) 
    STACK(eltype) s; 
    Post condition empty = = ( len(s)= =0); 
abstract eltype pop(s) 
    STACK(eltype)s; 
        pre condition empty(s) = =FALSE; 
        post condition pop = = first(s) 
            s= = sub(s,1,len(s)-1); 
 
abstract push(s,elt) 
    STACK(s,elt) 
        eltype elt; 
        post condition s = = <elt>+s;

Application of stacks

  • Reversing sorting
  • Balancing symbols
  • Infix expression to postfix conversion
  • Infix expression to prefix conversion
  • Evaluation of postfix expression

2065 Shrawan

What do you mean by abstract data type?

Answer:

ADT is used to specify the logical properties of the data type. It is a set of operation which is called with the component of the element of that abstract data type. ADT consists of two parts

  1. Value definition
  2. Operator definition

Value definition: It defines the collection of values of ADT. It has mainly two parts

  • Definition Clause: It is required.
  • Conditional Clause: It is optional.

Operator definition: It has mainly three parts:

  • Header: definition Clause
  • Pre condition: It is optional
  • Past condition: action