detailed contents preface to the second edition preface to the first edition viii introduction to introduction identifiers and keywords basic data types variables and constants writing the first program input and output functions operators and expressions type conversion and typecasting control statements decision control statements iterative statements break and continue statements functions why are functions needed using functions passing parameters to functions pointers declaring pointer variables pointer expressions and pointer arithmetic null pointers generic pointers pointer to pointers drawback of pointers introduction to data structures and algorithms basic terminology elementary data structure organization classification of data structures operations on data structures abstract data type algorithms different approaches to designing an algorithm control structures used in algorithms time and space complexity worst-caseaverage-casebest-caseand amortized time complexity time-space trade-off expressing time and space complexity algorithm efficiency big notation omega notation ( theta notation ( other useful notations arrays introduction declaration of arrays accessing the elements of an array calculating the address of array elements calculating the length of an array storing values in arrays operations on arrays traversing an array www allitebooks com