Programming C and Data structures - I

Product: Theory Subject
Categories: Engineering
Department: Common Subjects

Features Includes:

  • 176 - 3D/2D Animation
  • 850 Pages of Content
  • 60 Lecture Hours
  • 30 Solved Problems
  • 180 Quiz
  • Suitable for All Technical University Syllabus

Course Description

The C Programming language has many data structures like an array, stack, queue, linked list, tree, etc. A programmer selects an appropriate data structure and uses it according to their convenience.

OBJECTIVES:

  • A computer system has three main components: hardware, software, and people.
  • Formulate simple algorithms for arithmetic and logical problems. Test and execute the programs and correct syntax and logical errors.
  • To develop C Programs using basic programming constructs.
  • Data Structure is a way to store and organize data so that it can be used efficiently.Understand Linear Data structures.
  • Perform insertion and deletion operation on a singly linked list.
UNIT I - C PROGRAMMING FUNDAMENTALS - A REVIEW

Conditional statements - Introduction to statements - Decision making and branching statements - If statement - If - else statement - Nested if…else statement - Cascaded if else - Switch statement - Conditional operator (Ternary operator). Looping and controlled statement - Looping statements - while loop - do while statement - for loop statements - Nested for loop - Loop control statements. Functions – Functions - Library functions (or) standard functions - User-defined function. Arrays - Introduction to an array - One dimensional array - Initialization of one-dimensional array - Passing array elements as argument to functions - Two dimensional array - Multi-dimensional array. Pre-processor directives - Introduction to preprocessor - Preprocessor commands - File inclusion directives - Macro definition - Conditional compilation directives - Miscellaneous directives - Other commands. Pointers and address - Introduction to pointers - Pointer assignment and initialization - Address and de-referencing operators - Precedence of address and de-referencing operators - Pointer to pointer - Arithmetic pointer. Function pointers - Passing an array to a function. Function with variable number of arguments - Function prototypes - Function with no arguments and no return types - Function with arguments and no return types - Function with arguments and with return types - Function with no arguments and with return types. Argument passing - call by value call by reference – Introduction - Call by value - Call by reference - Call by value vs call by reference. String - Introduction to strings - String declaration and initialization - Introduction to string manipulation function - String concatenate [strcat()] - String compare [strcmp()] - String copy [strcpy()] - String length [strlen()] - String reverse [strrev()].

UNIT II - C PROGRAMMING ADVANCED FEATURES

Basic of structure - Introduction to structures - Declaration of structure variable(s) - Initialization of structure - Accessing structure members. Structure of functions, arrays and pointers - Structures and functions - Passing structure elements to function - Passing an entire structure - Passing pointer to structure - Structure of array - Arrays of structures, structures containing arrays - Self referential structures. Union - Introduction to union - Structure Vs Union - Bit fields. Files - Concept of a file - Text files and binary files - Input/output operations on files. Operations on a file - Introduction to file operation - Defining and opening a file - Closing a file - File status functions (error handling) - Positioning functions.

UNIT III - LINEAR DATA STRUCTURES – LIST

Abstract data types (ADTs) - Introduction to data structure - Representation of data structure - Implementation of data structure - Abstract data types (ADT). List ADT, Array-based implementation - The list ADT - The array list ADT - Array based implementation - Growable array based array list. Linked list implementation - Introduction to linked list - Representation of linked list - Implementation using array - Linked list using dynamic variables - Linked implementation of stacks - Advantages and disadvantages. Singly linked list - Singly linked list - Operations on singly linked list - Advantages and disadvantages. Circular linked list - Circular linked list - Operations in circular linked list - Advantages and disadvantages. Doubly linked list - Doubly linked list - Operations in doubly linked list. Applications of lists - Applications of linked list - Applications of doubly linked list. Polynomial manipulation - Polynomial manipulation - Addition of two polynomials - Multiplication of two polynomials. All operation (insertion, deletion, merge, traversal) - Basic operations - All operation.

UNIT IV – LINEAR DATA STRUCTURES - STACKS AND QUEUES

Stack - Introduction to stack - Representation of stack using array - Implementation of stack - Application of stack. Evaluating arithmetic expressions - other applications - Balancing symbols - What is expression? - Conversion of infix to postfix expression - Evaluating postfix expression. Queue ADT - Introduction to queue - Queue abstract data types - Example of operation on queue - Array implementation - Routine of array implementation. Circular queue - Circular queue - Implementation of circular queue using arrays - Creating and initializing circular queue - Empty circular queue - Full circular queue - Program for circular queue. Double ended queues - Double ended queues – Algorithms. Applications of queue - Applications of queue. UNIT V – SORTING, SEARCHING AND HASH TECHNIQUES

UNIT V – SORTING, SEARCHING AND HASH TECHNIQUES

Introduction to sorting - Introduction to sorting - O notation - Efficiency of sorting. Insertion sort - Insertion sort - Program for insertion sort - Complexity analysis of insertion sort. Selection sort - Selection sort - Program for selection sort. Shell sort - Shell sort - Program for shell sort. Bubble sort - Bubble sort - Complexity of bubble sort - Program for bubble sort - Example of bubble sort. Quick sort - Quick sort - Techniques in quick sort - Program for quick sort. Merge sort - Merge sort - Program for merge sort - Example of merge sort. Radix sort - Radix sort - Program for radix sort. Heap sort - Heap sort - Program for heap sort - Example for heap sort. Searching: Linear search - Binary search - Introduction to searching - Linear search - Example - linear search - Algorithm for linear search(unsorted array) - General requirements for linear search - Introduction to binary search - Binary search algorithm - Binary search – example - Performance of binary search - General requirements for binary search. Hashing: hash functions - Introduction to hashing - Hash function - Hash function – examples - Hash function methods. Separate chaining - Collision resolution - Separate chaining. Open addressing - Open addressing - Linear probing - Quadratic probing - Double hashing. Rehashing – Rehashing. Extendible hashing - Extendible hashing.