Phần này cung cấp cho người học thư viện bao goomg các cấu trúc dữ liệu và các thủ tục cần thiết hỗ trợ việc cài đặt các thuật toán trong giáo trình "Đồ thị và các thuật toán". để biết thêm nội dung chi tiết. | Đồ thị và các thuật toán – Phần phụ lục A: Thư viện `an phu. A Phˆ Thu. viˆ Du.´ d¯ˆay l`a thu. gˆ `om c´ac cˆa´u tr´ u. v`a c´ac thu˙’ cˆ uc d˜ `an thiˆe´t hˆo˜ tro c`ai d¯aˇ. t c´ac to´an trong gi´ao tr`ınh. /************************************************** Luu y: Tat ca cac file du lieu dung voi Thu vien nay phai duoc tao bang trinh Norton Commander. **************************************************/ #if !defined(graph_h) #define graph_h #include #include #include #include /****** Phan dinh nghia cac hang *****/ #define TRUE 1 #define FALSE 0 #define INFTY 32767 #define MAXEDGES 50 // So cuc dai cac canh #define MAXVERTICES 25 // So cuc dai cac \dd\ir nh #define MAXSTRINGS 16 // Chieu dai cuc dai xau ky tu 197 /****** Phan dinh nghia cac kieu du lieu *****/ typedef unsigned char byte; typedef byte Boolean; typedef char DataType[MAXSTRINGS+1]; // Them mot ma ket thuc chuoi /******************************* Cau truc du lieu: don lien ket *******************************/ typedef struct VertexNode *AdjPointer; struct VertexNode { byte Vertex; int Length; int Flow; AdjPointer Next; }; typedef struct { DataType Data; AdjPointer Next; } HeadNode; typedef HeadNode *HeadPointer; typedef HeadPointer ArrayOfPointer[MAXVERTICES]; typedef struct QueueType *QueueNode; struct QueueType { byte Vertex; QueueNode Next; }; typedef struct { QueueNode Head, Tail; } Queue; typedef byte Path[MAXVERTICES]; 198 typedef byte SetOfVertices[(MAXVERTICES%8)?((MAXVERTICES/8)+1):(MAXVERTICES/8)]; /*********************************** Danh sach da lien ket cho cac canh ***********************************/ typedef struct EdgeNode *EdgePointer; struct EdgeNode { byte Vertex[2]; EdgePointer Link[2]; }; typedef struct { char Data; EdgePointer Next; } ListEdge; typedef ListEdge .