mirror of
https://github.com/krahets/hello-algo.git
synced 2026-07-10 22:46:07 +00:00
Reimplement the graph code for C
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
#include "list_node.h"
|
||||
#include "print_util.h"
|
||||
#include "tree_node.h"
|
||||
#include "vertex.h"
|
||||
|
||||
// hash table lib
|
||||
#include "uthash.h"
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
/**
|
||||
* File: vertex.h
|
||||
* Created Time: 2023-10-28
|
||||
* Author: Krahets (krahets@163.com)
|
||||
*/
|
||||
|
||||
#ifndef VERTEX_H
|
||||
#define VERTEX_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* 顶点结构体 */
|
||||
typedef struct {
|
||||
int val;
|
||||
} Vertex;
|
||||
|
||||
/* 构造函数,初始化一个新节点 */
|
||||
Vertex *newVertex(int val) {
|
||||
Vertex *vet;
|
||||
vet = (Vertex *)malloc(sizeof(Vertex));
|
||||
vet->val = val;
|
||||
return vet;
|
||||
}
|
||||
|
||||
/* 将值数组转换为顶点数组 */
|
||||
Vertex **valsToVets(int *vals, int size) {
|
||||
Vertex **vertices = (Vertex **)malloc(size * sizeof(Vertex *));
|
||||
for (int i = 0; i < size; ++i) {
|
||||
vertices[i] = newVertex(vals[i]);
|
||||
}
|
||||
return vertices;
|
||||
}
|
||||
|
||||
/* 将顶点数组转换为值数组 */
|
||||
int *vetsToVals(Vertex **vertices, int size) {
|
||||
int *vals = (int *)malloc(size * sizeof(int));
|
||||
for (int i = 0; i < size; ++i) {
|
||||
vals[i] = vertices[i]->val;
|
||||
}
|
||||
return vals;
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // VERTEX_H
|
||||
Reference in New Issue
Block a user