An open API service indexing awesome lists of open source software.

https://github.com/thomas-bouvier/insa-c-3eii

Le code des TPs de C proposés à l'INSA Rennes, département 3EII
https://github.com/thomas-bouvier/insa-c-3eii

avl-tree c graph insa-rennes

Last synced: 2 months ago
JSON representation

Le code des TPs de C proposés à l'INSA Rennes, département 3EII

Awesome Lists containing this project

README

        

# insa-c-3eii
Le code des TPs de C proposés à l'INSA de Rennes, département 3EII

![alt tag](http://image.noelshack.com/fichiers/2016/51/1482265229-15168898-1848568648698247-7965944903553434182-o.jpg)

### 1. GCC, Makefile and main argument

Objectives :
* Discover an Unix-like environment ;
* Use by yourself the GCC to build a program ;
* Manipulate them trough a Makefile ;
* Write a program using the main arguments.

### 2. Postfix expressions

Objectives :
* Study a stack of int ;
* Code a function with an ellipsis ;
* Use the stack of int to evaluate postfix expressions ;
* Write a new solution based on pointers of functions.

### 3. Dynamic memory allocation

Objectives :
* Practice dynamic memory allocation ;
* Implement a classical image structure.

### 4. Binary files

Objectives :
* Read and write in a binary file ;
* Discover the Bitmap format for image files.

### 5. Singly linked list (level 1)

Objectives :
* Use dynamic allocation ;
* Implement and use singly linked list.

### 6. Singly linked list (level 2)

Objectives :
* Implement more advanced functionalities on linked lists to obtain a better knowledge of their mechanisms ;
* Create unit tests on these functionalities.

### 7. Singly linked list (level 3) : code a basic leak memory detector

Objectives :
* Overload functions using macros ;
* Manipulate addresses and more particularly void pointers ;
* Use our linked list interpretation to implement a basic leak memory detector.

### 8. Balanced trees : AVL trees

Objectives :
* Manipulate binary trees ;
* Use recursive programming to implement an AVL tree.

### 9. Trees : Huffman coding

Objectives :
* Implement a binary tree ;
* Use recursive programming in the tree use case ;
* Build a tree by a bottom-up method ;
* First approach of a coding method : Huffman tree ;
* Read image data from binary files.

### 10. Graphs : Dijkstra's algorithm

Objectives :
* Implement functionalities for a weighted directed graph implemented using linked lists ;
* Implement Dijkstra's algorithm to find the shortest path.