Skip to content

Commit e9922b7

Browse files
committed
Main README file updated with Table of Contents and some update in introduction
1 parent 2705e92 commit e9922b7

File tree

1 file changed

+148
-6
lines changed

1 file changed

+148
-6
lines changed

README.md

Lines changed: 148 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,147 @@
1-
# Introduction
1+
# Learn Data Structure and Algorithms by C
22

3-
**You need to have basic understanding of the C programming language to proceed with the codes from this repository.**
3+
> You need to have basic understanding of the C programming language to proceed with the codes from this repository.
4+
5+
6+
7+
## Table of Contents
8+
- [Introduction to C](#introduction)
9+
- [Data Structure](./Data%20Structure/)
10+
- [Linked List](./Data%20Structure/Linked%20List/)
11+
- [Stack](./Data%20Structure/Stack/)
12+
- [Queue](./Data%20Structure/Queue/)
13+
- [Binary Search Tree (BST)](./Data%20Structure/BST/)
14+
- Heap
15+
- Hash Table
16+
- Disjoint Set Union (Union Find)
17+
- Trie
18+
- Suffix Array
19+
- Segment Tree
20+
- Binary Indexed Tree (BIT)
21+
- Heavy Light Decomposition
22+
23+
24+
- [Searching](./Searching/)
25+
- [Linear Search](./Searching/Linear%20Search/)
26+
- [Binary Search](./Searching/Binary%20Search/)
27+
- [Ternary Search](./Searching/Ternary%20Search/)
28+
29+
30+
- [Sorting](./Sorting/)
31+
- [Selection Sort](./Sorting/Selection%20Sort/)
32+
- [Bubble Sort](./Sorting/Bubble%20Sort/)
33+
- [Insertion Sort](./Sorting/Insertion%20Sort/)
34+
- [Merge Sort](./Sorting/Merge%20Sort/)
35+
- [Quick Sort](./Sorting/Quick%20Sort/)
36+
- Bucket Sort
37+
- [Counting Sort](./Sorting/Counting%20Sort/)
38+
- Heap Sort
39+
- [Radix Sort](./Sorting/Radix%20Sort/)
40+
41+
42+
- Graph Algorithms
43+
- Graph Representation
44+
- Breadth First Search (BFS)
45+
- Depth First Search (DFS)
46+
- Topological Sort
47+
- Strongly Connected Components (SCC)
48+
- Minimum Spanning Tree (MST)
49+
- All Pairs Shortest Path (Floyd Warshall's Algorithm)
50+
- Single Source Shortest Path Algorithm
51+
- Djkastra's Algorithm
52+
- Bellman Ford Algorithm
53+
- Directed Acyclic Graph
54+
- Bipartite Matching
55+
- Articulation Point, Bridge
56+
- Euler Tour/Path
57+
- Hamiltonian Cycle
58+
- Stable Marriage Problem
59+
- Chinese Postman Problem
60+
- 2-satisfiability
61+
- Flow Algorithms
62+
- Maximum Flow
63+
- Minimum Cut
64+
- Min-Cost Max Flow
65+
- Maximum Bipartite Matching
66+
- Vertex Cover
67+
68+
- Dynamic Programming
69+
- Rod Cutting
70+
- Maximum Sum (1D, 2D)
71+
- Coin Change
72+
- Longest Common Subsequence
73+
- Longest Increasing Subsequence
74+
- Matrix Multiplication
75+
- Edit Distance (Levenshtein distance)
76+
- 0/1 Knapsack
77+
- Travelling Salesman Problem
78+
- Optimal Binary Search Tree
79+
80+
81+
- Greedy Algorithms
82+
- Activity Selection/Task Scheduling
83+
- Huffman Coding
84+
- Knapsack Problem (Fractional Knapsack)
85+
86+
87+
- String Algorithms
88+
- Rabin-Karp Algorithm
89+
- Knuth-Morris-Pratt Algorithm
90+
- Z Algorithm
91+
- Aho-Korasick Algorithm
92+
- Manachers Algorithm
93+
- Boyr-Moore Algorithm
94+
95+
96+
- Number Theory
97+
- Greatest Common Divisor (GCD)
98+
- Longest Common Multiplier (LCM)
99+
- Euler Totient (Phi)
100+
- Prime finding(Sieve of Eratosthenes)
101+
- Prime factorization
102+
- Factorial
103+
- Fibonacci
104+
- Counting, Permutation, combination
105+
- Exponentiation
106+
- Big Mod
107+
- Euclid, Extended euclid
108+
- Josephus Problem
109+
- Farey Sequence
110+
- Catalan numbers
111+
- Burnside's lemma/circular permutation
112+
- Modular inverse
113+
- Probability
114+
- Chinese Remainder Theorem
115+
- Gaussian Elmination method
116+
- Dilworth's Theorem
117+
- Matrix Exponentiation
118+
119+
120+
- Computational Geometry
121+
- Pick's Theorem
122+
- Convex hull
123+
- Line Intersection
124+
- Point in a polygon
125+
- Area of a polygon
126+
- Line Sweeping
127+
- Polygon intersection
128+
- Closest Pair
129+
130+
131+
- Game Theory
132+
- Take Away Game
133+
- Nim's Game
134+
- Sprague-grundy Number
135+
136+
- Others
137+
- BackTracking
138+
- N-Queen's Problem
139+
140+
---
141+
142+
## Introduction
143+
144+
The type system in C is static and weakly typed. There are built-in types for integers of various sizes, both signed and unsigned, floating-point numbers, and enumerated types (enum). Integer type char is often used for single-byte characters. C99 added a boolean datatype (C99 added a builtin **_Bool** data type , and if you *#include <stdbool.h>*, it provides **bool** as a macro to **_Bool**.). There are also derived types including arrays, pointers, records (struct), and untagged unions (union).
4145

5146
### Primitive types and built-in data structures in C
6147
C is a statically typed language. Each of the variables should be type casted.
@@ -21,6 +162,11 @@ Other than these there are some derived data types. they are -
21162
- [C data types - Tutorialspoint](https://www.tutorialspoint.com/cprogramming/c_data_types.htm)
22163
- [C programming data types - programiz](http://www.programiz.com/c-programming/c-data-types)
23164

165+
### Big-O Notation and Time Complexity Analysis
166+
167+
[Algorithms in plain English: time complexity and Big-O notation](https://medium.freecodecamp.com/time-is-complex-but-priceless-f0abd015063c)
168+
169+
[Big-O Cheat Sheet Link](http://bigocheatsheet.com/)
24170

25171
### How to Use
26172
To test or use codes from this repository you can use any popular IDE, online Editor or compile them locally using GCC compiler.
@@ -45,7 +191,3 @@ run it using:
45191
* [Topcoder Tutorials](https://www.topcoder.com/community/data-science/data-science-tutorials/)
46192
* [GeeksforGeeks](http://www.geeksforgeeks.org/)
47193
* [hackerearth Tutorial](https://www.hackerearth.com/practice/)
48-
49-
### Big-O Cheat Sheet
50-
51-
[Big-O Cheat Sheet Link](http://bigocheatsheet.com/)

0 commit comments

Comments
 (0)