C# Data Structures and Algorithms - Marcin Jamro - E-Book

C# Data Structures and Algorithms E-Book

Marcin Jamro

0,0
29,99 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

Building your own applications is exciting but challenging, especially when tackling complex problems tied to advanced data structures and algorithms. This endeavor demands profound knowledge of the programming language as well as data structures and algorithms. C# Data Structures and Algorithms, armed with critical knowledge from an entrepreneur, author, industry expert, and seasoned developer with significant international experience, offers just that to C# developers.
Starting with an introduction to algorithms, this book gradually immerses you in the world of arrays, lists, stacks, queues, dictionaries, and sets. Real-world examples, enriched with code snippets and illustrations, provide a practical understanding of these concepts. You’ll also learn how to sort arrays using various algorithms, setting a solid foundation for your programming expertise. As you progress, you’ll venture into more complex data structures – trees and graphs – and discover algorithms for tasks such as determining the shortest path in a graph before advancing to see various algorithms in action, such as solving Sudoku.
By the end of this book, you’ll be able to use the C# language to build algorithmic components that are not only easy to understand and debug but also seamlessly applicable in various apps, spanning web and mobile platforms.

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB
MOBI

Seitenzahl: 495

Veröffentlichungsjahr: 2024

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



C# Data Structures and Algorithms

Harness the power of C# to build a diverse range of efficient applications

Marcin Jamro

C# Data Structures and Algorithms

Copyright © 2024 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

Group Product Manager: Kunal Sawant

Publishing Product Manager: Teny Thomas

Book Project Manager: Manisha Singh

Senior Editor: Nithya Sadanandan

Technical Editor: Rajdeep Chakraborty

Copy Editor: Safis Editing

Indexer: Rekha Nair

Production Designer: Gokul Raj S.T

DevRel Marketing Coordinator: Shrinidhi Manoharan

Business Development Executive: Kriti Sharma

First published: April 2018

Second edition: February 2024

Production reference:1290124

Published by

Packt Publishing Ltd.

Grosvenor House

11 St Paul’s Square

Birmingham

B3 1RB, UK

ISBN 978-1-80324-827-1

www.packtpub.com

Contributors

About the author

Marcin Jamro, PhD, DSc (dr hab. inż. Marcin Jamro) is a reliable entrepreneur, a helpful expert, and an experienced developer, with significant international experience. He held the role of CEO at a few technological companies, operated as CTO at companies in various countries, and also worked at Microsoft Corporation in Redmond, USA. Marcin shares his knowledge as an expert in international projects and invests in modern solutions.

He is the author of a few books on software engineering, as well as the author of numerous publications. The results of his research were presented and discussed at many scientific conferences. He has MCPD, MCTS, MCP, and CAE certificates. Marcin is a multiple laureate, finalist, and mentor in various competitions. He received the Primus Inter Pares medal and also, a few times, a scholarship of the Minister of Science and Higher Education for scientific achievements.

Marcin has significant experience in project development, especially with the C# language and .NET-based technologies. He has performed the role of lead architect on numerous complex software projects, including web and mobile applications, APIs, databases, and integration with external components.

You can learn more about the author at his website: https://marcin.com.

About the reviewer

Alexej Sommer is a professional software developer and technology enthusiast with expertise in a variety of technologies, mainly .NET and Azure. He is MCP/MCSD/Azure Developer/PSM I-certified.

Alexej is a former Microsoft Student Partner and Most Valuable Professional in the Windows Development category.

Currently, he occasionally participates as a speaker at IT conferences and meetups.

Table of Contents

Preface

1

Data Types

C# as a programming language

.NET-based console applications

Division of data types

Value types

Integral numbers

Floating-point numbers

Boolean values

Unicode characters

Constants

Enumerations

Value tuples

User-defined structs

Nullable value types

Reference types

Objects

Strings

Classes

Records

Interfaces

Delegates

Dynamics

Nullable reference types

Summary

2

Introduction to Algorithms

What are algorithms?

Definition

Real-world examples

Notations for algorithm representation

Natural language

Flowchart

Pseudocode

Programming language

Types of algorithms

Recursive algorithms

Divide and conquer algorithms

Back-tracking algorithms

Greedy algorithms

Heuristic algorithms

Dynamic programming

Brute-force algorithms

Computational complexity

Time complexity

Space complexity

Summary

3

Arrays and Sorting

Single-dimensional arrays

Example – month names

Multi-dimensional arrays

Example – multiplication table

Example – game map

Jagged arrays

Example – yearly transport plan

Sorting algorithms

Selection sort

Insertion sort

Bubble sort

Merge sort

Shell sort

Quicksort

Heap sort

Performance analysis

Summary

4

Variants of Lists

Simple lists

Array lists

Generic lists

Sorted lists

Example – address book

Linked lists

Singly linked lists

Doubly linked lists

Circular singly linked lists

Circular doubly linked lists

List-related interfaces

Summary

5

Stacks and Queues

Stacks

Example – reversing a word

Example – Tower of Hanoi

Queues

Example – call center with a single consultant

Example – call center with many consultants

Priority queues

Example – call center with priority support

Circular queues

Example – gravity roller coaster

Summary

6

Dictionaries and Sets

Hash tables

Example – phone book

Dictionaries

Example – product location

Example – user details

Sorted dictionaries

Example – encyclopedia

Hash sets

Example – coupons

Example – swimming pools

“Sorted” sets

Example – removing duplicates

Summary

7

Variants of Trees

Basic trees

Implementation

Example – hierarchy of identifiers

Example – company structure

Binary trees

Traversal

Implementation

Example – simple quiz

Binary search trees

Implementation

Example – BST visualization

Self-balancing trees

AVL trees

Red-black trees

Tries

Implementation

Example – autocomplete

Heaps

Summary

8

Exploring Graphs

The concept of graphs

Applications

Representations

Adjacency list

Adjacency matrix

Implementation

Node

Edge

Graph

Example – undirected and unweighted edges

Example – directed and weighted edges

Traversal

Depth-first search

Breadth-first search

Minimum spanning tree

Kruskal’s algorithm

Prim’s algorithm

Example – telecommunication cable

Coloring

Example – voivodeship map

Shortest path

Example – path in game

Summary

9

See in Action

The Fibonacci series

Minimum coin change

Closest pair of points

Fractal generation

Rat in a maze

A Sudoku puzzle

Title guess

A password guess

Summary

10

Conclusion

Classification

Arrays

Lists

Stacks

Queues

Dictionaries

Sets

Trees

Graphs

The last word

Index

Other Books You May Enjoy