Data Structures Using C
Introduction to Data Structures
C Language
Data Structures
- Introduction to Data Structures
- Types of data structures
- Primitive and Non-primitive Data Structures
- Binary and Decimal Integers
- Algorithm
- Time and Space Complexity
- Logical Information
- Storage of Information
- Hardware and Software
- Concept of DataTypes
- Abstract data type
- Pointers
- Structures in C
- Union
- Algorithm
- Arithmetic operators
- Data Types
- Data Types in C
- Integer data types
- Overflow in char and unsigned char data types
- The Char Type
- Floating-point numbers
- Type conversion
- Forced conversion
- Type casting
- Assignment operator
- Relational operators
- Logical Operators
- Ternary operators
- Increment Operator
- Comma operator
- Bitwise operators
- Operator precedence
- Control Structures
- if statement
- if-else if
- The switch statement
- The while loop
- The do-while loop
- The for loop
- The break statement
- The continue statement
- The printf Function
- Placeholders
- Address
- Pointers
- The scanf function
- The scanf placeholder
- Preprocessor
- Macros
- Macro and Function
- Arrays in c
- Address of each element in an array
- Access an array element by using a pointer
- Two dimensional arrays
- Three-dimensional arrays
- Function
- Concept of Stack
- Parameter Passing
- Call by reference
- Global variables
- Resolving variable References
- Calling Function
- Storage of variables
- Register Variables
- Scope of variables
- Dynamic memory allocation
- Recursion
- Stack overheads in recursion
- Recursive function
- Strings
- String definition
- String as parameters
- Structures
- Memory allocation to structure
- Programming with structures
- Structure pointer
- Union
- Files
- Direct access file
- Arrays
- Application of arrays
- Merging of two sorted lists
- Transpose of a matrix
- Saddle point of a matrix
- Implementation of Heap
- Bubble sorting
- Quick sort
- Merge Sort
- Heapsort
- Searching Techniques
- Binary search
- Hashing
- Hash function
- Stack
- Implementation of a Stack Using Linked Representation
- Applications of the stack
- Queue
- Implementation of Queues
- Circular queue
- Implementation of a queue using the linked representation
- Application of the queue
- Linked Lists
- Inserting a node in linked list
- Sorting a linked list
- Deleting a specified node in a singly linked list
- Insert a new node after the specified node in a linked list
- Counting the number of nodes of a singly linked list
- Merging of two sorted lists
- Erasing a linked list
- Polynomial representation
- Representation of sparse matrix
- Splitting a circular list with 2n nodes into two equal circular lists
- Merging of two circular lists
- Reverse the direction of links in the circular list
- Doubly linked list
- Insert a node in a doubly linked list
- Delete a node from a doubly linked list
- Application of dobly linked list to memory management
- Trees
- Binary Tree
- Representation of a Binary Tree
- Binary Tree Traversal
- Binary search tree
- Program: Creating a Binary Search Tree
- Program for inorder traversal of binary tree
- Constructing Binary Tree Using the Preorder and Inorder Traversals
- Count the number of nodes in binary tree
- Swapping the left and right subtrees of a binary tree
- Searching in binary search tree
- Delete a node from binary search tree
- Graphs
- Array Representation of graph
- Computing the indegree and outdegree of a node of a graph
- Depth-first traversal
- Breadth-first traversal
- Connected component of a graph
- Strongly Connected Component
- Depth first spanning tree and Breadth-first spanning tree
- Minimum-Cost Spanning Tree
- Program of minimum spanning tree
- Directed acyclic graph
- Topological sort
- Program for topological sort