Library Hours
Monday to Friday: 9 a.m. to 9 p.m.
Saturday: 9 a.m. to 5 p.m.
Sunday: 1 p.m. to 9 p.m.
Naper Blvd. 1 p.m. to 5 p.m.
     
Record 11 of 17
Results Page:  Previous Next
Author Kalicharan, Noel, author.

Title Advanced topics in C : core concepts in data structures / Noel Kalicharan. [O'Reilly electronic resource]

Publication Info. [Berkeley, CA] : Apress, 2013.
New York, NY : Distributed to the Book trade worldwide by Springer
©2013
QR Code
Description 1 online resource (312 pages)
PDF
text file
Series The expert's voice in C
Expert's voice in C.
Summary C is the most widely used programming language of all time. It has been used to create almost every category of software imaginable and the list keeps growing every day. Cutting-edge applications, such as Arduino, embeddable and wearable computing are ready-made for C. "Advanced Topics In C" teaches concepts that any budding programmer should know. You'll delve into topics such as sorting, searching, merging, recursion, random numbers and simulation, among others. You will increase the range of problems you can solve when you learn how to manipulate versatile and popular data structures such as binary trees and hash tables. This book assumes you have a working knowledge of basic programming concepts such as variables, constants, assignment, selection (if.else) and looping (while, for). It also assumes you are comfortable with writing functions and working with arrays. If you study this book carefully and do the exercises conscientiously, you would become a better and more agile programmer, more prepared to code today's applications (such as the Internet of Things) in C
Bibliography Includes bibliographical references and index.
Contents Chapter 1. Sorting, searching, and merging -- chapter 2. Structures -- chapter 3. Pointers -- chapter 4. Linked lists -- chapter 5. Stacks and queues -- chapter 6. Recursion -- chapter 7. Random numbers, games, and simulation -- chapter 8. Working with files -- chapter 9. Introduction to binary trees -- chapter 10. Advanced sorting -- chapter 11. Hashing.
Machine generated contents note: 1.1. Sorting an Array: Selection Sort -- 1.1.1. Analysis of Selection Sort -- 1.2. Sorting an Array: Insertion Sort -- 1.2.1. Analysis of Insertion Sort -- 1.3. Inserting an Element in Place -- 1.4. Sorting an Array of Strings -- 1.5. Sorting Parallel Arrays -- 1.6. Binary Search -- 1.7. Searching an Array of Strings -- 1.8. Example: Word Frequency Count -- 1.9. Merging Ordered Lists -- 1.9.1. Implementing the Merge -- 2.1. Defining Structures -- 2.2. How to Declare a Structure -- 2.2.1. typedef -- 2.3. Working with an Array of Structures -- 2.4. Searching an Array of Structures -- 2.5. Sorting an Array of Structures -- 2.6. How to Read, Search, and Sort a Structure -- 2.7. Nested Structures -- 2.8. Working with Fractions -- 2.8.1. Manipulating Fractions -- 2.9. Voting Problem -- 2.10. Passing Structures to Functions -- 3.1. Defining Pointers -- 3.2. Passing Pointers as Arguments -- 3.3. More on Passing an Array as an Argument -- 3.4. Character Pointers -- 3.5. Pointer Arithmetic -- 3.6. Pointers to Structures -- 3.7. Pointers to Functions -- 3.8. Void Pointers -- 4.1. Defining Linked Lists -- 4.2. Basic Operations on a Linked List -- 4.2.1. Counting the Nodes in a Linked List -- 4.2.2. Searching a Linked List -- 4.2.3. Finding the Last Node in a Linked List -- 4.3. Dynamic Storage Allocation: malloc, calloc, sizeof, free -- 4.3.1. malloc -- 4.3.2. calloc -- 4.3.3. sizeof -- 4.3.4. free -- 4.4. Building a Linked List: Adding New Item at the Tail : -- 4.5. Insertion into a Linked List -- 4.6. Building a Linked List: Adding a New Item at the Head -- 4.7. Deletion from a Linked List -- 4.8. Building a Sorted Linked List -- 4.9. Example: Palindrome -- 4.10. Saving a Linked List -- 4.11. Arrays vs. Linked Lists -- 4.12. Storing a Linked List Using Arrays -- 4.13. Merging Two Sorted Linked Lists -- 4.14. Circular and Two-Way Linked Lists -- 4.14.1. Circular Lists -- 4.14.2. Two-Way (Doubly Linked) Lists -- 5.1. Abstract Data Types -- 5.2. Stacks -- 5.2.1. Implementing a Stack Using an Array -- 5.2.2. Implementing a Stack Using a Linked List -- 5.3. Creating a Stack Header File -- 5.4. General Stack Type -- 5.4.1. Example: Convert from Decimal to Binary -- 5.5. Converting Infix to Postfix -- 5.5.1. Evaluating a Postfix Expression -- 5.6. Queues -- 5.6.1. Implementing a Queue Using an Array -- 5.6.2. Implementing a Queue Using a Linked List -- 6.1. Recursive Definition -- 6.2. Writing Recursive Functions in C -- 6.3. Converting a Decimal Number to Binary Using Recursion -- 6.4. Printing a Linked List in Reverse Order -- 6.5. Towers of Hanoi -- 6.6. Writing Power Functions -- 6.7. Merge Sort -- 6.8. static Variables -- 6.8.1. Internal Static -- 6.8.2. External Static -- 6.9. Counting Organisms -- 6.10. Finding a Path Through a Maze -- 6.10.1. Writing the Program -- 7.1. Random Numbers -- 7.2. Random and Pseudorandom Numbers -- 7.3. Generating Random Numbers by Computer -- 7.4. Guessing Game -- 7.5. Drills in Addition -- 7.6. Nim -- 7.7. Non-uniform Distributions -- 7.7.1. Collecting Bottle Caps -- 7.8. Simulation of Real-Life Problems -- 7.9. Simulating a Queue -- 7.9.1. Programming the Simulation -- 7.10. Estimating Numerical Values Using Random Numbers -- 7.10.1. Estimating square root of 5 -- 7.10.2. Estimating π -- 8.1. Reading Data from a File -- 8.1.1. fscanf -- 8.1.2. Finding the Average of Some Numbers in a File -- 8.2. Sending Output to a File -- 8.2.1. fprintf -- 8.3. Text and Binary Files -- 8.4. Internal vs. External File Name -- 8.5. fopen and fclose -- 8.6. getc and putc -- 8.7. feof and ferror -- 8.8. fgets and fputs -- 8.8.1. Example: Comparing Two Files -- 8.9. Input/Output for Binary File -- 8.9.1. fread and fwrite -- 8.10. Random Access Files -- 8.10.1. rewind and fseek -- 8.11. Indexed Files -- 8.12. Updating a Random Access File -- 9.1. Trees -- 9.2. Binary Trees -- 9.3. Traversing a Binary Tree -- 9.4. Representing a Binary Tree -- 9.5. Building a Binary Tree -- 9.6. Binary Search Trees -- 9.7. Building a Binary Search Tree -- 9.7.1. Example: Word Frequency Count -- 9.8. Array as a Binary Tree Representation -- 9.9. Some Useful Binary Tree Functions -- 9.10. Binary Search Tree Deletion -- 10.1. Heapsort -- 10.1.1. Converting a Binary Tree into a Max-Heap -- 10.1.2. Sorting Process -- 10.2. Building a Heap Using siftUp -- 10.3. Analysis of Heapsort -- 10.4. Heaps and Priority Queues -- 10.5. Sorting a List of Items with Quicksort -- 10.5.1. Another Way to Partition -- 10.5.2. Nonrecursive Quicksort -- 10.5.3. Finding the kth Smallest Number -- 10.6. Shell (Diminishing Increment) Sort -- 11.1. Hashing Fundamentals -- 11.1.1. Search and Insert Problem -- 11.2. Solving the Search and Insert Problem by Hashing -- 11.2.1. Hash Function -- 11.2.2. Deleting an Item from a Hash Table -- 11.3. Resolving Collisions -- 11.3.1. Linear Probing -- 11.3.2. Quadratic Probing -- 11.3.3. Chaining -- 11.3.4. Linear Probing with Double Hashing -- 11.4. Example: Word Frequency Count.
Language English.
Subject C (Computer program language)
Software engineering.
Computer Science.
Computer Science, general.
Génie logiciel.
C (Langage de programmation)
Software engineering
C (Computer program language)
Other Form: Printed edition: 9781430264002
ISBN 9781430264019 (electronic bk.)
1430264012 (electronic bk.)
Standard No. 10.1007/978-1-4302-6401-9 doi
Patron reviews: add a review
Click for more information
EBOOK
No one has rated this material

You can...
Also...
- Find similar reads
- Add a review
- Sign-up for Newsletter
- Suggest a purchase
- Can't find what you want?
More Information