دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
دسته بندی: الگوریتم ها و ساختارهای داده ویرایش: 3 نویسندگان: Loiane Groner سری: ISBN (شابک) : 9781788623872, 1788623878 ناشر: Packt Publishing سال نشر: 2018 تعداد صفحات: 566 زبان: English فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 19 مگابایت
در صورت تبدیل فایل کتاب Learning JavaScript Data Structures and Algorithms به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب یادگیری ساختارها و الگوریتم های داده جاوا اسکریپت نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
ایجاد ساختارهای داده کلاسیک و الگوریتمهایی مانند جستجوی عمقی و جستجوی گسترده، یادگیری بازگشتی، و همچنین ایجاد و استفاده از یک ساختار داده پشته با استفاده از ویژگیهای کلیدی جاوا اسکریپت پیادهسازی ساختارهای داده رایج و الگوریتمهای مرتبط به همراه زمینهای که در آن قرار دارند. مورد استفاده قرار میگیرند بر ساختارهای داده جاوا اسکریپت موجود مانند آرایهها، مجموعهها و نقشهها مسلط شوند و یاد بگیرند که چگونه موارد جدیدی مانند پشتهها، فهرستهای پیوندی، درختها و نمودارها را در ES 8 پیادهسازی کنند. زبان شرح کتاب ساختار داده روشی خاص برای سازماندهی داده ها در رایانه برای استفاده کارآمد از منابع است. ساختار داده ها و الگوریتم ها پایه هر راه حلی برای هر مشکل برنامه نویسی هستند. با این کتاب یاد خواهید گرفت که با استفاده از آخرین ویژگی های ES 2017 کدهای پیچیده و قدرتمند بنویسید. یادگیری ساختارها و الگوریتم های داده جاوا اسکریپت با پوشش اصولی جاوا اسکریپت آغاز می شود و شما را با ECMAScript 2017 آشنا می کند، قبل از اینکه به تدریج به سراغ مهم ترین ساختارهای داده مانند آرایه ها، صف ها، پشته ها و لیست های پیوندی بروید. شما دانش عمیقی در مورد نحوه عملکرد جداول هش و مجموعه ساختارهای داده و همچنین نحوه استفاده از درختان و نقشه های هش برای جستجوی فایل ها در HD یا نمایش یک پایگاه داده کسب خواهید کرد. این کتاب به عنوان مسیری عمل می کند تا شما را عمیق تر به جاوا اسکریپت ببرد. همچنین درک بیشتری از چرایی و چگونگی استفاده از نمودارها، یکی از پیچیده ترین ساختارهای داده، در سیستم های ناوبری GPS در شبکه های اجتماعی خواهید داشت. در پایان کتاب، متوجه خواهید شد که چگونه تمام نظریه های ارائه شده در این کتاب را می توان برای حل مشکلات دنیای واقعی در حین کار بر روی شبکه های کامپیوتری خود و جستجوهای فیس بوک به کار برد. آنچه یاد خواهید گرفت اعلام، مقداردهی اولیه، افزودن و حذف آیتم ها از آرایه ها، پشته ها و صف ها ایجاد و استفاده از لیست های پیوندی، لیست های پیوندی دوگانه و لیست های پیوند خورده دایره ای عناصر منحصر به فرد را با جداول هش، دیکشنری ها و مجموعه ها کاوش کنید. استفاده از باینری را کاوش کنید. درختها و درختهای جستجوی دودویی مرتبسازی ساختارهای داده با استفاده از الگوریتمهایی مانند مرتبسازی حبابی، مرتبسازی انتخابی، مرتبسازی درج، مرتبسازی ادغام و مرتبسازی سریع عناصر جستجو در ساختارهای داده با استفاده از مرتبسازی متوالی و جستجوی دودویی، اگر توسعهدهنده جاوا اسکریپت هستید، این کتاب برای چه کسی است. کسانی که می خواهند عمیقاً در جاوا اسکریپت غوطه ور شوند و با استفاده از ساختارهای داده و الگوریتم های جاوا اسکریپت برنامه های پیچیده بنویسند، این کتاب برای شما مناسب است.
Create classic data structures and algorithms such as depth-first search and breadth-first search, learn recursion, as well as create and use a heap data structure using JavaScript Key Features Implement common data structures and the associated algorithms along with the context in which they are used Master existing JavaScript data structures such as arrays, sets, and maps, and learn how to implement new ones such as stacks, linked lists, trees, and graphs in ES 8 Develop abstract data types to make JavaScript a more flexible and powerful programming language Book Description A data structure is a particular way of organizing data in a computer to utilize resources efficiently. Data structures and algorithms are the base of every solution to any programming problem. With this book, you will learn to write complex and powerful code using the latest ES 2017 features. Learning JavaScript Data Structures and Algorithms begins by covering the basics of JavaScript and introduces you to ECMAScript 2017, before gradually moving on to the most important data structures such as arrays, queues, stacks, and linked lists. You will gain in-depth knowledge of how hash tables and set data structures function as well as how trees and hash maps can be used to search files in an HD or represent a database. This book serves as a route to take you deeper into JavaScript. You'll also get a greater understanding of why and how graphs, one of the most complex data structures, are largely used in GPS navigation systems in social networks. Toward the end of the book, you'll discover how all the theories presented in this book can be applied to solve real-world problems while working on your own computer networks and Facebook searches. What you will learn Declare, initialize, add, and remove items from arrays, stacks, and queues Create and use linked lists, doubly linked lists, and circular linked lists Store unique elements with hash tables, dictionaries, and sets Explore the use of binary trees and binary search trees Sort data structures using algorithms such as bubble sort, selection sort, insertion sort, merge sort, and quick sort Search elements in data structures using sequential sort and binary search Who this book is for If you're a JavaScript developer who wants to dive deep into JavaScript and write complex programs using JavaScript data structures and algorithms, this book is for you.
Colaboradores Prefácio capítulo 1 JavaScript – uma visão geral rápida Estrutura de dados e algoritmos em JavaScript Configurando o ambiente Configuração mínima para trabalhar com JavaScript Usando servidores web http-server do Node.js Básico sobre o JavaScript Variáveis Escopo das variáveis Operadores Verdadeiro e falso Funções dos operadores de igualdade (== e ===) Estruturas de controle Instruções condicionais Laços Funções Programação orientada a objetos em Javascript Depuração e ferramentas Depuração com o VSCode Resumo capítulo 2 Visão geral sobre ECMAScript e TypeScript ECMAScript ou JavaScript? ES6, ES2015, ES7, ES2016, ES8, ES2017 e ES.Next Tabela de compatibilidade Usando o Babel.js Funcionalidades das versões ECMAScript 2015+ let e const no lugar de var Escopo de variáveis com let e const Templates literais Funções de seta Valores default para parâmetros de funções Declarando os operadores de espalhamento e rest Propriedades melhoradas de objetos Programação orientada a objetos com classes Herança Trabalhando com getters e setters Operador de exponencial Módulos Executando módulos ES2015 no navegador e com o Node.js Usando importações nativas da ES2015 no Node.js Executando módulos ES2015 no navegador Compatibilidade de versões anteriores a ES2015+ Introdução ao TypeScript Inferência de tipo Interfaces Genéricos Outras funcionalidades do TypeScript Verificações do TypeScript em tempo de compilação em arquivos JavaScript Resumo capítulo 3 Arrays Por que devemos usar arrays? Criando e inicializando arrays Acessando elementos e fazendo uma iteração em um array Acrescentando elementos Inserindo um elemento no final do array Usando o método push Inserindo um elemento na primeira posição Usando o método unshift Removendo elementos Removendo um elemento do final do array Removendo um elemento da primeira posição Usando o método shift Adicionando e removendo elementos de uma posição específica Arrays bidimensionais e multidimensionais Iterando pelos elementos de arrays bidimensionais Arrays multidimensionais Referências para métodos de array em JavaScript Juntando vários arrays Funções de iteração Iterando com o método every Iterando com o método some Iterando com forEach Usando map e filter Usando o método reduce ECMAScript 6 e as novas funcionalidades de array Iterando com o laço for…of Usando o objeto @@iterator Métodos entries, keys e values de array Usando o método from Usando o método Array.of Usando o método fill Usando o método copyWithin Ordenando elementos Ordenação personalizada Ordenando strings Pesquisa ECMAScript 2015 – os métodos find e findIndex ECMAScript 2016 – usando o método includes Convertendo um array em uma string Classe TypedArray Arrays em TypeScript Resumo capítulo 4 Pilhas Criação de uma biblioteca de estruturas de dados e algoritmos JavaScript Estrutura de dados de pilha Criando uma classe Stack baseada em array Push de elementos na pilha Pop de elementos da pilha Dando uma espiada no elemento que está no topo da pilha Verificando se a pilha está vazia Limpando os elementos da pilha Usando a classe Stack Criando uma classe JavaScript Stack baseada em objeto Push de elementos na pilha Verificando se a pilha está vazia e o seu tamanho Pop de elementos da pilha Dando uma espiada no topo e limpando a pilha Criando o método toString Protegendo os elementos internos da estrutura de dados Convenção de nomenclatura com underscore Classes ES2015 com símbolos no escopo Classes ES2015 com WeakMap Proposta para campos de classe na ECMAScript Resolvendo problemas usando pilhas Convertendo números decimais para binários Algoritmo conversor de base Resumo capítulo 5 Filas e deques Estrutura de dados de fila Criando a classe Queue Inserção de elementos na fila Remoção de elementos da fila Dando uma espiada no elemento que está na frente da fila Verificando se a pilha está vazia e o seu tamanho Limpando a fila Criando o método toString Usando a classe Queue Estrutura de dados de deque Criando a classe Deque Adicionando elementos na frente do deque Usando a classe Deque Resolvendo problemas usando filas e deques Fila circular – Batata Quente Verificador de palíndromo Filas de tarefas em JavaScript Resumo capítulo 6 Listas ligadas Estrutura de dados da lista ligada Criando a classe LinkedList Inserindo elementos no final da lista ligada Removendo elementos de uma posição específica da lista ligada Percorrendo a lista com um laço até alcançar a posição desejada Refatorando o método remove Inserindo um elemento em qualquer posição Método indexOf: devolvendo a posição de um elemento Removendo um elemento da lista ligada Métodos isEmpty, size e getHead Método toString Listas duplamente ligadas Inserindo um novo elemento em qualquer posição Removendo elementos de qualquer posição Listas ligadas circulares Inserindo um novo elemento em qualquer posição Removendo elementos de qualquer posição Listas ligadas ordenadas Inserindo elementos na ordem Criando a classe StackLinkedList Resumo capítulo 7 Conjuntos Estruturando um conjunto de dados Criando uma classe Set Método has(element) Método add Métodos delete e clear Método size Método values Usando a classe Set Operações em conjuntos União de conjuntos Intersecção de conjuntos Aperfeiçoando o método intersection Diferença entre conjuntos Subconjunto ECMAScript 2015 – a classe Set Operações com a classe Set da ES2015 Simulando a operação de união Simulando a operação de intersecção Simulando a operação de diferença Usando o operador de espalhamento Multiconjuntos ou bags Resumo capítulo 8 Dicionários e hashes Estrutura de dados de dicionário Criando a classe Dictionary Verificando se uma chave está presente no dicionário Definindo uma chave e um valor no dicionário, e a classe ValuePair Removendo um valor do dicionário Obtendo um valor do dicionário Métodos keys, values e valuePairs Iterando pelos ValuePairs do dicionário com forEach Métodos clear, size, isEmpty e toString Usando a classe Dictionary Tabela hash Criando uma classe HashTable Criando uma função de hash Inserindo uma chave e um valor na tabela hash Obtendo um valor da tabela hash Removendo um valor da tabela hash Usando a classe HashTable Tabela hash versus conjunto hash Tratando colisões nas tabelas hash Encadeamento separado Método put Método get Método remove Sondagem linear Método put Método get Método remove Criando funções melhores de hash Classe Map da ES2015 Classes WeakMap e WeakSet da ES2015 Resumo capítulo 9 Recursão Entendendo a recursão Calculando o fatorial de um número Fatorial iterativo Fatorial recursivo Pilha de chamadas Limitação do tamanho da pilha de chamadas em JavaScript Sequência de Fibonacci Fibonacci iterativo Fibonacci recursivo Fibonacci com memoização Por que usar recursão? É mais rápido? Resumo capítulo 10 Árvores Estrutura de dados de árvore Terminologia de árvores Árvore binária e árvore binária de busca Criando as classes Node e BinarySearchTree Inserindo uma chave na BST Percorrendo uma árvore Percurso em-ordem Percurso pré-ordem Percurso pós-ordem Pesquisando valores em uma árvore Pesquisando valores mínimos e máximos Pesquisando um valor específico Removendo um nó Removendo uma folha Removendo um nó com um filho à esquerda ou à direita Removendo um nó com dois filhos Árvores autobalanceadas Árvore de Adelson-Velskii e Landi (árvore AVL) Altura de um nó e o fator de balanceamento Operações de balanceamento – rotações na árvore AVL Rotação Esquerda-Esquerda: rotação simples à direita Rotação Direita-Direita: rotação simples à esquerda Esquerda-Direita: rotação dupla à direita Direita-Esquerda: rotação dupla à esquerda Inserindo um nó na árvore AVL Removendo um nó da árvore AVL Árvore rubro-negra Inserindo um nó na árvore rubro-negra Verificando as propriedades da árvore rubro-negra após a inserção Rotações na árvore rubro-negra Resumo capítulo 11 Heap binário e heap sort Estrutura de dados do heap binário Criando a classe MinHeap Representação da árvore binária com um array Inserindo um valor no heap Operação de sift up Encontrando os valores mínimo e máximo no heap Extraindo os valores mínimo e máximo do heap Operação de sift down Criando a classe MaxHeap Algoritmo de heap sort Resumo capítulo 12 Grafos Terminologia dos grafos Grafos direcionados e não direcionados Representando um grafo A matriz de adjacências Lista de adjacências Matriz de incidências Criando a classe Graph Percorrendo grafos Busca em largura (BFS) Encontrando os caminhos mais curtos usando BFS Estudos adicionais sobre algoritmos de caminhos mais curtos Busca em profundidade (DFS) Explorando o algoritmo DFS Ordenação topológica usando DFS Algoritmos de caminho mais curto Algoritmo de Dijkstra Algoritmo de Floyd-Warshall Árvore de extensão mínima (MST) Algoritmo de Prim Algoritmo de Kruskal Resumo capítulo 13 Algoritmos de ordenação e de busca Algoritmos de ordenação Bubble sort Bubble sort melhorado Selection sort Insertion sort Merge sort Quick sort Processo de partição Quick sort em ação Counting sort Bucket sort Radix sort Algoritmos de busca Busca sequencial Busca binária Busca por interpolação Algoritmos de embaralhamento Algoritmo de embaralhamento de Fisher-Yates Resumo capítulo 14 Designs de algoritmos e técnicas Dividir e conquistar Busca binária Programação dinâmica Problema do número mínimo de moedas para troco Problema da mochila Maior subsequência comum Multiplicação de cadeia de matrizes Algoritmos gulosos Problema do número mínimo de moedas para troco Problema fracionário da mochila Algoritmos de backtracking Rato em um labirinto Solucionador de sudoku Introdução à programação funcional Programação funcional versus programação imperativa ES2015+ e a programação funcional Caixa de ferramentas funcional de JavaScript – map, filter e reduce Bibliotecas e estruturas de dados funcionais de JavaScript Resumo capítulo 15 Complexidade de algoritmos Notação big-O Compreendendo a notação big-O O(1) O(n) O(n2) Comparando as complexidades Estruturas de dados Grafos Algoritmos de ordenação Algoritmos de busca Introdução à teoria de NP-completo Problemas impossíveis e algoritmos heurísticos Divertindo-se com algoritmos Resumo