Previous parts provide a comprehensive introduction to the C language syntax, and the modern study of computer algorithms and data structures. Following those parts, this book presents many solutions to problem-based examinations using the C language. Problems are extracted from examination tests of the "Algorithms and Programming" course delivered within the Computer Engineering Bachelor-level degree at Politecnico di Torino. The text is intended primarily for use in undergraduate or graduate courses in algorithms and data structures. The content of the previous parts should be considered as prerequisites for reading this book. We have attempted to make every problem accessible and interesting. We also provide careful explanations of the main mathematical and algorithmic issues. The volume is divided in two chapters. The first one includes only completely solved examination-based problems. Those correspond to 16 examination tests, i.e., 16 standard and 16 simplified examination tests, for a total of 64 completely solved exercises. The second chapter includes only suggested problems, taken from 10 mock examination-based tests, again each one including a standard and a simplified section, for a total of 40 suggested problems. As in the examination of "Algorithms and programming", those exercises mainly include the following topics: Sorting, static and dynamic data structures, recursion, abstract objects, collections of objects and abstract data types (ADTs), trees, symbol tables (such as Binary Search Trees, BSTs, and Hash Tables), and graphs. Simplified exercises target the guided development of the solution to a problem, with only a small emphasis on design and problem-solving skills and more emphasis on the ability to use advanced C features (pointers, dynamic allocation, recursion) and on the knowledge of basic data structures and algorithms. For those simplified problems, only the code required by the examination specification is reported in the text, i.e., clients, data definitions and data initialization are often not reported in the book for the sake of space. Standard exercises target the design and development of a program in C to solve a problem, the main emphasis being on the algorithm and data-structure adopted, and on problem-solving and design skills. Exercise and solution style follow the ones introduced in previous volumes by the same author. C syntax is somehow restricted to the minimum set of constructs, avoiding useless or redundant ones. Solution design is maintained as simple as possible, keeping in mind asymptotic time and memory costs. Each solution can be mono or multi-file. In this last case, book sub-titles specify the file name to correctly follow the inclusion of header files and type definitions. Solutions are usually introduced by short descriptions, illustrating the main philosophy and core ideas behind them. Simplified specifications (but sometimes even standard ones) may be followed by more than one solution, illustrating the main logic possibilities to reach the same final target. The book is also covered by online material, as all source codes are available on the editor web page. We would sincerely appreciate any comments, criticisms, corrections and suggestions for improving the text. Please address all correspondence to: stefano.quer@polito.it or visits the following web page: http://fmgroup.polito.it/quer/

Advanced Programming and Problem-Solving Strategies in C. Part IV: Exam-Based Problems / Quer, Stefano. - STAMPA. - IV:(2017), pp. 1-227.

Advanced Programming and Problem-Solving Strategies in C. Part IV: Exam-Based Problems.

QUER, Stefano
2017

Abstract

Previous parts provide a comprehensive introduction to the C language syntax, and the modern study of computer algorithms and data structures. Following those parts, this book presents many solutions to problem-based examinations using the C language. Problems are extracted from examination tests of the "Algorithms and Programming" course delivered within the Computer Engineering Bachelor-level degree at Politecnico di Torino. The text is intended primarily for use in undergraduate or graduate courses in algorithms and data structures. The content of the previous parts should be considered as prerequisites for reading this book. We have attempted to make every problem accessible and interesting. We also provide careful explanations of the main mathematical and algorithmic issues. The volume is divided in two chapters. The first one includes only completely solved examination-based problems. Those correspond to 16 examination tests, i.e., 16 standard and 16 simplified examination tests, for a total of 64 completely solved exercises. The second chapter includes only suggested problems, taken from 10 mock examination-based tests, again each one including a standard and a simplified section, for a total of 40 suggested problems. As in the examination of "Algorithms and programming", those exercises mainly include the following topics: Sorting, static and dynamic data structures, recursion, abstract objects, collections of objects and abstract data types (ADTs), trees, symbol tables (such as Binary Search Trees, BSTs, and Hash Tables), and graphs. Simplified exercises target the guided development of the solution to a problem, with only a small emphasis on design and problem-solving skills and more emphasis on the ability to use advanced C features (pointers, dynamic allocation, recursion) and on the knowledge of basic data structures and algorithms. For those simplified problems, only the code required by the examination specification is reported in the text, i.e., clients, data definitions and data initialization are often not reported in the book for the sake of space. Standard exercises target the design and development of a program in C to solve a problem, the main emphasis being on the algorithm and data-structure adopted, and on problem-solving and design skills. Exercise and solution style follow the ones introduced in previous volumes by the same author. C syntax is somehow restricted to the minimum set of constructs, avoiding useless or redundant ones. Solution design is maintained as simple as possible, keeping in mind asymptotic time and memory costs. Each solution can be mono or multi-file. In this last case, book sub-titles specify the file name to correctly follow the inclusion of header files and type definitions. Solutions are usually introduced by short descriptions, illustrating the main philosophy and core ideas behind them. Simplified specifications (but sometimes even standard ones) may be followed by more than one solution, illustrating the main logic possibilities to reach the same final target. The book is also covered by online material, as all source codes are available on the editor web page. We would sincerely appreciate any comments, criticisms, corrections and suggestions for improving the text. Please address all correspondence to: stefano.quer@polito.it or visits the following web page: http://fmgroup.polito.it/quer/
2017
978-88-7992-411-5
File in questo prodotto:
Non ci sono file associati a questo prodotto.
Pubblicazioni consigliate

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/11583/2687730
 Attenzione

Attenzione! I dati visualizzati non sono stati sottoposti a validazione da parte dell'ateneo