
Data structures written easily in C language
Description
Book Introduction
The revised third edition, like the first edition, aims to help learners understand data structures more easily, with particular emphasis on the following areas:
The order of the original text has been changed to help beginners understand the concepts of data structures more easily.
Stacks and queues, which can be considered basic data structures, are placed at the front.
Beginners can understand what data structures are through stacks and queues, and then move on to more complex data structures such as linked lists and trees.
Double pointers were removed from the code as much as possible.
Because for beginners, double pointers are a nightmare.
If the external pointer is changed within the function, the function returns the changed pointer.
New application examples were added and overly complex examples were removed.
I have always tried to provide practical and specific application examples.
In all examples, input and output values are shown.
We have tried to provide complete programs rather than fragmented ones as much as possible.
Learning objectives are presented at the beginning of each chapter.
After completing each chapter, learners can check whether they have achieved the learning objectives.
Additionally, since problem-solving skills are required of learners, problem-solving skills can be improved by performing practice problems in each chapter.
- From the preface
The order of the original text has been changed to help beginners understand the concepts of data structures more easily.
Stacks and queues, which can be considered basic data structures, are placed at the front.
Beginners can understand what data structures are through stacks and queues, and then move on to more complex data structures such as linked lists and trees.
Double pointers were removed from the code as much as possible.
Because for beginners, double pointers are a nightmare.
If the external pointer is changed within the function, the function returns the changed pointer.
New application examples were added and overly complex examples were removed.
I have always tried to provide practical and specific application examples.
In all examples, input and output values are shown.
We have tried to provide complete programs rather than fragmented ones as much as possible.
Learning objectives are presented at the beginning of each chapter.
After completing each chapter, learners can check whether they have achieved the learning objectives.
Additionally, since problem-solving skills are required of learners, problem-solving skills can be improved by performing practice problems in each chapter.
- From the preface
index
Chapter 01 Data Structures and Algorithms
1.1 Data Structures and Algorithms
1.2 Abstract data types
1.3 Performance Analysis of the Algorithm
■Practice problems
Chapter 02 Circulation
2.1 Introduction to circulation
2.2 Calculating exponents
2.3 Calculating the Fibonacci sequence
2.4 Tower of Hanoi Problem
■Practice problems
Chapter 03 Arrays, Structures, and Pointers
3.1 Array
3.2 Structure
3.3 Applications of Arrays: Polynomials
3.4 Applications of Arrays: Sparse Matrices
3.5 pointer
3.6 Dynamic Memory Allocation
■Practice problems
Chapter 04 Stack
4.1 What is a stack?
4.2 Stack Implementation
4.3 Dynamic Array Stack
4.4 Application of the Stack: The Parentheses Checking Problem
4.5 Applications of the Stack: Computing Postfix Expressions
4.6 Application of Stacks: Maze Problems
■Practice problems
Chapter 05 Queue
5.1 Queue Abstract Data Type
5.2 Linear Queue
5.3 Circular Queue
5.4 Applications of Queues: Buffer
5.5 What is a deck?
5.6 Applications of Queues: Simulation
■Practice problems
Chapter 06 Linked List I
6.1 List Abstract Data Type
6.2 Lists implemented as arrays
6.3 Linked List
6.4 Singly linked list
6.5 Implementing Operations on a Singly Linked List
6.6 Applications of Linked Lists: Polynomials
■Practice problems
Chapter 07 Linked List II
7.1 Circular Linked List
7.2 Where are circular linked lists used?
7.3 Doubly Linked Lists
7.4 Example: Creating an MP3 Player Program
7.5 Stack implemented with linked list
7.5 Queue implemented with linked list
■Practice problems
Chapter 08 Tree
8.1 Tree Concept
8.2 Introduction to Binary Trees
8.3 Representation of binary trees
8.4 Traversing a Binary Tree
8.5 Recursive traversal
8.6 Level Tour
8.7 Applications of Trees: Processing Formula Trees
8.8 Application of Trees: Directory Capacity Calculation
8.9 Additional Operations on Binary Trees
8.10 Threaded Binary Tree
8.11 Binary Search Tree
8.12 Applications of Binary Search Trees: English Dictionary
■Practice problems
Chapter 09 Priority Queue
9.1 Priority Queue Abstract Data Type
9.2 How to implement a priority queue
9.3 Hip
9.4 Heap Implementation
9.5 Heap sort
9.6 Machine Scheduling
9.7 Huffman code
■Practice problems
Chapter 10 Graphs I
10.1 What is a graph?
10.2 Definition and terminology of graphs
10.3 How to Represent Graphs
10.4 Exploring Graphs
10.5 Depth-First Search
10.6 Breadth-First Search
■Practice problems
Chapter 11 Graph II
11.1 Minimum cost spanning tree
11.2 Kruskal's MST algorithm
11.3 Prim's MST algorithm
11.4 Shortest path
11.5 Dijkstra's shortest path algorithm
11.6 Floyd's shortest path algorithm
11.7 Topological sorting
■Practice problems
Chapter 12 Sorting
12.1 What is sorting?
12.2 Selection Sort
12.3 Insertion sort
12.4 Bubble Sort
12.5 Shell Sort
12.6 Merge Sort
12.7 Quick sort
12.8 Heap Sort
12.9 revision order
12.10 Comparison of Sorting Algorithms
12.11 Application of Sorting: Sorting for an English Dictionary
■Practice problems
Chapter 13 Exploration
13.1 What is navigation?
13.2 Searching in an unsorted array
13.3 Searching in a sorted array
13.4 Binary Search Tree
13.5 AVL tree
13.6 2-3 tree
13.7 2-3-4 tree
■Practice problems
Chapter 14 Hashing
14.1 What is Hashing?
14.2 Abstract Data Type Dictionary
14.3 Hashing Structure
14.4 Hash Functions
14.5 Open Address Law
14.6 Chaining
14.7 Hashing Performance Analysis
14.8 Applications of Hashing
■Practice problems
■Search
1.1 Data Structures and Algorithms
1.2 Abstract data types
1.3 Performance Analysis of the Algorithm
■Practice problems
Chapter 02 Circulation
2.1 Introduction to circulation
2.2 Calculating exponents
2.3 Calculating the Fibonacci sequence
2.4 Tower of Hanoi Problem
■Practice problems
Chapter 03 Arrays, Structures, and Pointers
3.1 Array
3.2 Structure
3.3 Applications of Arrays: Polynomials
3.4 Applications of Arrays: Sparse Matrices
3.5 pointer
3.6 Dynamic Memory Allocation
■Practice problems
Chapter 04 Stack
4.1 What is a stack?
4.2 Stack Implementation
4.3 Dynamic Array Stack
4.4 Application of the Stack: The Parentheses Checking Problem
4.5 Applications of the Stack: Computing Postfix Expressions
4.6 Application of Stacks: Maze Problems
■Practice problems
Chapter 05 Queue
5.1 Queue Abstract Data Type
5.2 Linear Queue
5.3 Circular Queue
5.4 Applications of Queues: Buffer
5.5 What is a deck?
5.6 Applications of Queues: Simulation
■Practice problems
Chapter 06 Linked List I
6.1 List Abstract Data Type
6.2 Lists implemented as arrays
6.3 Linked List
6.4 Singly linked list
6.5 Implementing Operations on a Singly Linked List
6.6 Applications of Linked Lists: Polynomials
■Practice problems
Chapter 07 Linked List II
7.1 Circular Linked List
7.2 Where are circular linked lists used?
7.3 Doubly Linked Lists
7.4 Example: Creating an MP3 Player Program
7.5 Stack implemented with linked list
7.5 Queue implemented with linked list
■Practice problems
Chapter 08 Tree
8.1 Tree Concept
8.2 Introduction to Binary Trees
8.3 Representation of binary trees
8.4 Traversing a Binary Tree
8.5 Recursive traversal
8.6 Level Tour
8.7 Applications of Trees: Processing Formula Trees
8.8 Application of Trees: Directory Capacity Calculation
8.9 Additional Operations on Binary Trees
8.10 Threaded Binary Tree
8.11 Binary Search Tree
8.12 Applications of Binary Search Trees: English Dictionary
■Practice problems
Chapter 09 Priority Queue
9.1 Priority Queue Abstract Data Type
9.2 How to implement a priority queue
9.3 Hip
9.4 Heap Implementation
9.5 Heap sort
9.6 Machine Scheduling
9.7 Huffman code
■Practice problems
Chapter 10 Graphs I
10.1 What is a graph?
10.2 Definition and terminology of graphs
10.3 How to Represent Graphs
10.4 Exploring Graphs
10.5 Depth-First Search
10.6 Breadth-First Search
■Practice problems
Chapter 11 Graph II
11.1 Minimum cost spanning tree
11.2 Kruskal's MST algorithm
11.3 Prim's MST algorithm
11.4 Shortest path
11.5 Dijkstra's shortest path algorithm
11.6 Floyd's shortest path algorithm
11.7 Topological sorting
■Practice problems
Chapter 12 Sorting
12.1 What is sorting?
12.2 Selection Sort
12.3 Insertion sort
12.4 Bubble Sort
12.5 Shell Sort
12.6 Merge Sort
12.7 Quick sort
12.8 Heap Sort
12.9 revision order
12.10 Comparison of Sorting Algorithms
12.11 Application of Sorting: Sorting for an English Dictionary
■Practice problems
Chapter 13 Exploration
13.1 What is navigation?
13.2 Searching in an unsorted array
13.3 Searching in a sorted array
13.4 Binary Search Tree
13.5 AVL tree
13.6 2-3 tree
13.7 2-3-4 tree
■Practice problems
Chapter 14 Hashing
14.1 What is Hashing?
14.2 Abstract Data Type Dictionary
14.3 Hashing Structure
14.4 Hash Functions
14.5 Open Address Law
14.6 Chaining
14.7 Hashing Performance Analysis
14.8 Applications of Hashing
■Practice problems
■Search
GOODS SPECIFICS
- Date of publication: February 22, 2019
- Page count, weight, size: 574 pages | 1,550g | 215*275*35mm
- ISBN13: 9788970509716
- ISBN10: 8970509712
You may also like
카테고리
korean
korean