Data Structures and Program Design Using C: A Self-Teaching Introduction [Pehme köide]

  • Formaat: Paperback / softback, 450 pages, kõrgus x laius x paksus: 226x175x30 mm, kaal: 839 g
  • Ilmumisaeg: 31-May-2018
  • Kirjastus: Mercury Learning & Information
  • ISBN-10: 1683922077
  • ISBN-13: 9781683922070
Teised raamatud teemal:
  • Pehme köide
  • Hind: 52,32 EUR*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • soodushind kehtib ainult laos olevatele toodetele
  • Tavahind: 64,75 EUR
  • Säästad 19%
  • Lisa soovinimekirja
  • Laos olemas 1 eks Tule tutvuma - Raekoja plats 11, Tartu, E-R 10-18
  • Lisa ostukorvi
  • Kogus:
  • Tasuta tarne
  • Saadame välja 1 tööpäeva jooksul
  • Raamatukogudele
    • EBL
  • Formaat: Paperback / softback, 450 pages, kõrgus x laius x paksus: 226x175x30 mm, kaal: 839 g
  • Ilmumisaeg: 31-May-2018
  • Kirjastus: Mercury Learning & Information
  • ISBN-10: 1683922077
  • ISBN-13: 9781683922070
Teised raamatud teemal:
Data structures provide a means to manage large amounts of information such as large databases, using SEO, and creating Internet/Web indexing services. The book is designed to present fundamentals of data structures for beginners using the C programming language. Practical analogies using real world applications are integrated throughout the text to explain the technical concepts presented.

Features:

• Covers data structure fundamentals using C

• Numerous tips and practical applications enhance understanding of concepts
Preface xv
Acknowledgments xvii
1 Introduction to Data Structures
1(24)
1.1 Introduction
1(2)
1.2 Types of Data Structures
3(9)
1.2.1 Linear and Non-linear Data Structures
3(1)
1.2.2 Static and Dynamic Data Structures
3(1)
1.2.3 Homogeneous and Non-homogeneous Data Structures
4(1)
1.2.4 Primitive and Non-Primitive Data Structures
4(1)
1.2.5 Arrays
5(1)
1.2.6 Queues
6(1)
1.2.7 Stacks
7(1)
1.2.8 Linked List
8(1)
1.2.9 Trees
9(2)
1.2.10 Graphs
11(1)
1.3 Operations on Data Structures
12(1)
1.4 Algorithms
13(1)
1.4.1 Developing an Algorithm
14(1)
1.5 Approaches for Designing an Algorithm
14(1)
1.6 Analyzing an Algorithm
15(2)
1.6.1 Time-Space Trade-off
17(1)
1.7 Abstract Data Types
17(1)
1.8 Big O Notation
18(1)
1.9 Summary
18(2)
1.10 Exercises
20(1)
1.11 Multiple Choice Questions
21(4)
2 Introduction to the C Language
25(52)
2.1 Introduction
26(1)
2.2 Header Files in C
27(1)
2.3 Main Function
28(1)
2.4 Input and Output Methods
29(1)
2.5 Character Set Used in C
30(1)
2.6 C Tokens
30(3)
2.7 Data Types in C
33(1)
2.8 Operators in C
34(6)
2.9 Decision Control Statements in C
40(9)
2.10 Looping Statements in C
49(6)
2.11 Break and Continue Statements
55(2)
2.12 Functions in C
57(6)
2.12.1 Structure of A Multifunctional Program
60(1)
2.12.2 Passing Arguments to Functions
60(3)
2.13 Recursion
63(1)
2.14 Structures in C
64(1)
2.15 Pointers
65(4)
2.15.1 Arrays and Pointers
66(2)
2.15.2 Drawbacks of Using Pointers
68(1)
2.16 Summary
69(2)
2.17 Exercises
71(3)
2.17.1 Theory Questions
71(2)
2.17.2 Programming Questions
73(1)
2.18 Multiple Choice Questions
74(3)
3 Arrays
77(56)
3.1 Introduction
78(1)
3.2 Definition of an Array
78(1)
3.3 Array Declaration
79(1)
3.4 Array Initialization
80(1)
3.5 Calculating the Address of Array Elements
81(1)
3.6 Operations on Arrays
82(25)
3.7 2-D Arrays/Two-Dimensional Arrays
107(1)
3.8 Declaration of Two-Dimensional Arrays
108(2)
3.9 Operations on 2-D Arrays
110(6)
3.10 Multidimensional Arrays/N-Dimensional Arrays
116(1)
3.11 Calculating the Address of 3-D Arrays
116(3)
3.12 Arrays and Pointers
119(1)
3.13 Array of Pointers
120(1)
3.14 Arrays and their Applications
121(1)
3.15 Sparse Matrices
121(1)
3.16 Types of Sparse Matrices
122(1)
3.17 Representation of Sparse Matrices
123(2)
3.18 Summary
125(2)
3.19 Exercises
127(6)
3.19.1 Theory Questions
127(1)
3.19.2 Programming Questions
128(1)
3.19.3 Multiple Choice Questions
129(4)
4 Linked Lists
133(74)
4.1 Introduction
133(1)
4.2 Definition of a Linked List
134(2)
4.3 Memory Allocation in a Linked List
136(1)
4.4 Types of Linked Lists
137(57)
4.4.1 Singly Linked List
137(1)
4.4.2 Operations on a Singly Linked List
138(20)
4.4.3 Circular Linked Lists
158(1)
4.4.4 Operations on a Circular Linked List
159(14)
4.4.5 Doubly Linked List
173(1)
4.4.6 Operations on a Doubly Linked List
174(20)
4.5 Header Linked Lists
194(7)
4.6 Applications of Linked Lists
201(1)
4.7 Polynomial Representation
201(1)
4.8 Summary
202(1)
4.9 Exercises
202(5)
4.9.1 Theory Questions
202(1)
4.9.2 Programming Questions
203(1)
4.9.3 Multiple Choice Questions
203(4)
5 Queues
207(42)
5.1 Introduction
207(1)
5.2 Definition of a Queue
208(1)
5.3 Implementation of a Queue
208(7)
5.3.1 Implementation of Queues Using Arrays
208(1)
5.3.2 Implementation of Queues Using Linked Lists
209(1)
5.3.2.1 Insertion in Linked Queues
209(2)
5.3.2.2 Deletion in Linked Queues
211(4)
5.4 Operations on Queues
215(6)
5.4.1 Insertion
215(2)
5.4.2 Deletion
217(4)
5.5 Types of Queues
221(23)
5.5.1 Circular Queue
221(1)
5.5.1.1 Limitation of Linear Queues
221(2)
5.5.1.2 Inserting an Element in a Circular Queue
223(3)
5.5.1.3 Deleting an Element From a Circular Queue
226(5)
5.5.2 Priority Queue
231(1)
5.5.2.1 Implementation of A Priority Queue
232(2)
5.5.2.2 Insertion in a Linked Priority Queue
234(1)
5.5.2.3 Deletion in a Linked Priority Queue
235(4)
5.5.3 De-queues (Double-Ended Queues)
239(5)
5.6 Applications of Queues
244(1)
5.7 Summary
245(1)
5.8 Exercises
246(3)
5.8.1 Theory Questions
246(1)
5.8.2 Programming Questions
246(1)
5.8.3 Multiple Choice Questions
247(2)
6 Searching and Sorting
249(48)
6.1 Introduction to Searching
249(1)
6.2 Linear Search or Sequential Search
250(5)
6.2.1 Drawbacks of a Linear Search
253(2)
6.3 Binary Search
255(6)
6.3.1 Binary Search Algorithm
255(3)
6.3.2 Complexity of a Binary Search Algorithm
258(1)
6.3.3 Drawbacks of a Binary Search
258(3)
6.4 Interpolation Search
261(4)
6.4.1 Working of the Interpolation Search Algorithm
261(2)
6.4.2 Complexity of the Interpolation Search Algorithm
263(2)
6.5 Introduction to Sorting
265(25)
6.5.1 Types of Sorting Methods
266(24)
6.6 External Sorting
290(1)
6.7 Summary
291(1)
6.8 Exercises
292(5)
6.8.1 Theory Questions
292(1)
6.8.2 Programming Questions
293(1)
6.8.3 Multiple Choice Questions
293(4)
7 Stacks
297(46)
7.1 Introduction
297(1)
7.2 Definition of a Stack
298(1)
7.3 Overflow and Underflow in Stacks
299(1)
7.4 Operations on Stacks
300(6)
7.5 Implementation of Stacks
306(7)
7.5.1 Implementation of Stacks Using Arrays
306(1)
7.5.2 Implementation of Stacks Using Linked Lists
307(1)
7.5.2.1 Push Operation in Linked Stacks
307(1)
7.5.2.2 Pop Operation in Linked Stacks
308(5)
7.6 Applications of Stacks
313(25)
7.6.1 Polish and Reverse Polish Notations and Their Need
313(1)
7.6.2 Conversion from Infix Expression to Postfix Expression
314(6)
7.6.3 Conversion from Infix Expression to Prefix Expression
320(5)
7.6.4 Evaluation of a Postfix Expression
325(6)
7.6.5 Evaluation of a Prefix Expression
331(3)
7.6.6 Parenthesis Balancing
334(4)
7.7 Summary
338(1)
7.8 Exercises
339(4)
7.8.1 Theory Questions
339(1)
7.8.2 Programming Questions
340(1)
7.8.3 Multiple Choice Questions
341(2)
8 Trees
343(66)
8.1 Introduction
343(2)
8.2 Definitions
345(2)
8.3 Binary Tree
347(5)
8.3.1 Types of Binary Trees
348(1)
8.3.2 Memory Representation of Binary Trees
349(3)
8.4 Binary Search Tree
352(33)
8.4.1 Operations on Binary Search Trees
353(16)
8.4.2 Binary Tree Traversal Methods
369(11)
8.4.3 Creating a Binary Tree Using Traversal Methods
380(5)
8.5 AVL Trees
385(13)
8.5.1 Need of Height-Balanced Trees
385(1)
8.5.2 Operations on an AVL Tree
386(12)
8.6 Summary
398(2)
8.7 Exercises
400(9)
8.7.1 Theory Questions
400(3)
8.7.2 Programming Questions
403(1)
8.7.3 Multiple Choice Questions
404(5)
9 Multi-Way Search Trees
409(18)
9.1 Introduction
409(1)
9.2 B-Trees
410(1)
9.3 Operations on a B-Tree
411(9)
9.3.1 Insertion in a B-Tree
412(2)
9.3.2 Deletion in a B-Tree
414(6)
9.4 Application of a B-Tree
420(1)
9.5 B+ Trees
420(2)
9.6 Summary
422(1)
9.7 Exercises
422(5)
9.7.1 Review Questions
422(1)
9.7.2 Multiple Choice Questions
423(4)
10 Hashing
427(34)
10.1 Introduction
427(28)
10.1.1 Difference between Hashing and Direct Addressing
429(1)
10.1.2 Hash Tables
430(1)
10.1.3 Hash Functions
431(3)
10.1.4 Collision
434(1)
10.1.5 Collision Resolution Techniques
434(1)
10.1.5.1 Chaining Method
434(6)
10.1.5.2 Open Addressing Method
440(15)
10.2 Summary
455(1)
10.3 Exercises
456(5)
10.3.1 Review Questions
456(1)
10.3.2 Multiple Choice Questions
457(4)
11 Files
461(12)
11.1 Introduction
461(1)
11.2 Terminologies
462(1)
11.3 File Operations
462(2)
11.4 File Classification
464(1)
11.5 File Organization
464(1)
11.6 Sequence File Organization
464(2)
11.7 Indexed Sequence File Organization
466(1)
11.8 Relative File Organization
467(1)
11.9 Inverted File Organization
468(1)
11.10 Summary
469(1)
11.11 Exercises
470(3)
11.11.1 Review Questions
470(1)
11.11.2 Multiple Choice Questions
470(3)
12 Graphs
473(40)
12.1 Introduction
473(2)
12.2 Definitions
475(5)
12.3 Graph Representation
480(6)
12.3.1 Adjacency Matrix Representation
480(3)
12.3.2 Adjacency List Representation
483(3)
12.4 Graph Traversal Techniques
486(8)
12.4.1 Breadth First Search
486(4)
12.4.2 Depth First Search
490(4)
12.5 Topological Sort
494(4)
12.6 Minimum Spanning Tree
498(8)
12.6.1 Prims Algorithm
499(3)
12.6.2 KruskaTs Algorithm
502(4)
12.7 Summary
506(1)
12.8 Exercises
507(6)
12.8.1 Theory Questions
507(3)
12.8.2 Programming Questions
510(1)
12.8.3 Multiple Choice Questions
511(2)
Appendix 513(1)
Answers to Selected Exercises 513(4)
Index 517
D. Malhotra, PhD, is a professor in information technology and has published numerous research articles with reputed international publishers such as ACM, Springer, Elsevier, and IEEE. N. Malhotra, PhD, has research publications with numerous international publishers. Her teaching and research interests include data structures, big data analytics, business intelligence, Java, and distributed programming.